На языке Visual Prolog можно разрабатывать приложения, использующие графический интерфейс. Опишем поэтапно создание простого иллюстративного проекта на примере.
Подготовительный этап
Создание папки, в котором будет располагаться проект (c:\temp\tst).
Запуск Visual Prolog.
Выбор нового проекта через меню: Project ® New Project.
Выбор для какой платформы разрабатывается программа.
Выбор опций VPI, пакетов, которые будут использоваться при разработке программы.
Генерация кода (Create).
Создадим меню &Test для примеров (Text Message — окно с тестовым сообщением, Graphics — окно с графикой) с помощью генератора меню (Menu, Task Menu).
Разработка окна с текстовым сообщением
Выбрать Code Expert.
Связываем пункт меню с вызовом окна:
а) Event Type ® Menu, Event or Item ® id_Test_text_message;
б) добавляем код для вызова окна в текст программы (Add Clause, затем Edit Clause).
Вызываем контекстное меню и выбираем Insert ® Predicate Call ® Window, Dialog or Toolbar.
В диалоговом окне используем для выбора Common dialog dlg_Note и печатаем "Текстовое сообщение".
Проверяем выполнение Project ® Run.
Разработка окна с графикой
Добавляем новый модуль. В окне проекта выбираем кнопку Module, затем New. Вводим имя модуля Graph.pro. Выбираем инструкции для генерации кода.
Создаем новое окно через окно проекта (Window ®New).
После OK переходим в редактор окон.
Закрываем редактор окон.
Вызываем Code Expert для генерации кода окна модуля Graph с помощью кнопки Default Code.
Добавляем в меню вызов окна.
Вызываем Add Clause, Edit Clause.
Затем контекстное меню Insert ® Predicate Call ® Window, Dialog or Toolbar.
Запрограммируем изображение в созданном окне.
Вызываем Code Expert. Добавим код для события e_Update в окне Graph.
Вызываем Add Clause, Edit Clause.
Дописываем код для рисования и получаем
win_graph_eh(_Win,e_Update(_UpdateRct),0):-!, win_Clear ( _Win, color_White ), RCT=win_GetClientRect(_Win), RCT = rct(_,_,R,B), draw_Line(_Win,pnt(0,0),pnt(R,B)), draw_Line(_Win,pnt(0,B),pnt(R,0)), draw_Text(_Win, 55, 20, " тест Graph Window"), draw_Ellipse(_Win,rct(30,50,60,100)), draw_PolyGon(_Win,[pnt(130,130), pnt(180,130),pnt(145,100), pnt(150,150),pnt(170,110)]), draw_Rect(_Win,rct(250,50,300,100)), !.
Проверяем выполнение программы Project ® Run.
Контрольные вопросы и задания
- Какие предикаты предназначены для рисования в окне?
- Что такое дескриптор окна?
- Какие события можно обрабатывать в окне?
- Поясните назначение файлов с расширением .inc, .con, .pre .
- Изучите проект SPRITES.VPR. Каким образом в программе осуществляется перенос графического изображения.
- Как осуществляется отладка приложения?
- Назовите назначение Code Expert.
- Назовите назначение Application Expert.
- Что означает запись draw_Line(_Win,pnt(0,0),pnt(R,B))?
- Что означает запись rct(30,50,60,100)?