Разработка простого приложения

На языке Visual Prolog можно разрабатывать приложения, использующие гра­фи­ческий интерфейс. Опишем поэтапно создание простого иллюстративного проекта на примере.

Подготовительный этап

Создание папки, в котором будет располагаться проект (c:\temp\tst).

Запуск Visual Prolog.

Выбор нового проекта через меню: Project ® New Project.

Статья 102 - Картинка 1

Выбор для какой платформы разрабатывается программа.

Статья 102 - Картинка 2

Выбор опций VPI, пакетов, которые будут использоваться при разработке программы.

Статья 102 - Картинка 3

Генерация кода (Create).

Статья 102 - Картинка 4

Создадим меню &Test для примеров (Text Message — окно с тес­то­вым со­об­щением, Graphics — окно с графикой) с помощью генератора меню (Menu, Task Menu).

Статья 102 - Картинка 5

Статья 102 - Картинка 6

Статья 102 - Картинка 7

Разработка окна с текстовым сообщением

Выбрать Code Expert.

Связываем пункт меню с вызовом окна:

а) Event Type ® Menu, Event or Item ® id_Test_text_message;

Статья 102 - Картинка 8

б) добавляем код для вызова окна в текст программы (Add Clause, затем Edit Clause).

Статья 102 - Картинка 9

Вызываем контекстное меню и выбираем Insert ® Predicate Call ® Window, Dialog or Toolbar.

Статья 102 - Картинка 10

В диалоговом окне используем Статья 102 - Картинка 11 для выбора Common dialog dlg_Note и печатаем "Текстовое сообщение".

Статья 102 - Картинка 12

Проверяем выполнение Project ® Run.

Статья 102 - Картинка 13

Разработка окна с графикой

Добавляем новый модуль. В окне проекта выбираем кнопку Module, за­тем New. Вводим имя модуля Graph.pro. Выбираем инструкции для генерации кода.

Статья 102 - Картинка 14

Создаем новое окно через окно проекта (Window ®New).

Статья 102 - Картинка 15

После OK переходим в редактор окон.

Статья 102 - Картинка 16

Закрываем редактор окон.

Вызываем Code Expert для генерации кода окна модуля Graph с помощью кнопки Default Code.

Статья 102 - Картинка 17

Добавляем в меню вызов окна.

Статья 102 - Картинка 18

Вызываем Add Clause, Edit Clause.

Статья 102 - Картинка 19

Затем контекстное меню Insert ® Predicate Call ® Window, Dialog or Toolbar.

Статья 102 - Картинка 20

Запрограммируем изображение в созданном окне.

Вызываем Code Expert. Добавим код для события e_Update в окне Graph.

Статья 102 - Картинка 21

Вызываем 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.

Статья 102 - Картинка 22

Контрольные вопросы и задания

  1. Какие предикаты предназначены для рисования в окне?
  2. Что такое дескриптор окна?
  3. Какие события можно обрабатывать в окне?
  4. Поясните назначение файлов с расширением .inc, .con, .pre .
  5. Изучите проект SPRITES.VPR. Каким образом в программе осуществляется перенос графического изображения.
  6. Как осуществляется отладка приложения?
  7. Назовите назначение Code Expert.
  8. Назовите назначение Application Expert.
  9. Что означает запись draw_Line(_Win,pnt(0,0),pnt(R,B))?
  10. Что означает запись rct(30,50,60,100)?