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

На языке 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.

  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)?