На этом шаге мы рассмотрим использование эксперта окон и диалоговых окон.
Теперь можно воспользоваться текстовым редактором VPI для того, чтобы создать диалоговое окно Привет, Мир!. Однако в Visual Prolog проще и правильнее использовать эксперты кода. Эксперты кода могут выполнять часть стандартной работы, и, что более важно, они помогут в организации кода. Кроме того, они позволяют легко ориентироваться в коде.
Рекомендуем всегда использовать эксперта окон и диалоговых окон (Dialog and Window Expert) при добавлении исходного кода Пролог для пунктов меню. Попробуйте сделать это сейчас. Сначала нажмите кнопку Window в окне проекта; будет отображен список имен, зарегистрированных в проекте окон. Выберите окно с именем Task Window, это окно пока единственное зарегистрированное в проекте (рис. 1).
Рис.1. Вызов эксперта окон и диалоговых окон из окна проекта
Теперь нажмите кнопку Code Expert на правой стороне окна проекта (или используйте комбинацию клавиш <Ctrl>+<W>) для вызова эксперта окон и диалоговых окон (рис. 2).
Рис.2. Эксперт окон и диалоговых окон создает код меню
После того как появится эксперт окон и диалоговых окон, вам следует выполнить следующие шаги:
Нажатие кнопки Edit Clause вызовет редактор (для файла Myproj.pro). Он позиционируется на соответствующем предложении обработчика событий. Обратите внимание, что к предикату обработчика событий для окна Task было добавлено следующее предложение:
%BEGIN Task Window, id_hello task_win_eh(_Win,e_Menu(id_hello,ShiftCtlAlt),0):-!, !. %END Task Window,id hello
Комментарии %Begin - %End анализируются экспертом окон и диалоговых окон, чтобы определять положение кода для компонентов пользовательского интерфейса.
Переменная _Win содержит дескриптор окна, в данном случае это дескриптор окна Task. Переменная ShiftCtlAlt содержит флаг, из которого вы можете получить комбинацию клавиш <Shift>, <Alt> и <Ctrl>, которая использовалась, когда меню было активизировано. В обоих случаях символ подчеркивания - это синтаксическое соглашение, которое отменяет предупреждение компилятора для однократного использования имен переменных (что обычно бывает с неиспользованными переменными)
Добавить код можно с помощью меню Insert редактора. Попробуйте поместить курсор редактора в точке, где вы хотите вставить код (в данном случае, в начале строки после первого отсечения (!) в предложении), затем щелкните правой кнопкой мыши и выберите команду Insert | Predicate Call | Window, Dialog or Toolbar (рис. 3).
Рис.3. Меню вставки редактора
В появившемся сейчас диалоговом окне используйте кнопку раскрытия списка для выбора общего диалогового окна dlgNote и напечатайте Привет, Мир! (включая кавычки) (рис. 4)
Рис.4. Определение предиката для вставки
Заданный по умолчанию запрос к указанному предикату (вызов общего диалогового окна dlg_Note с определенными параметрами) будет затем вставлен в текст таким образом, чтобы окончательный код предложения выглядел так:
task_win_eh(_Win,e_Menu(id_hello,_ShiftCtlAlt),0):-!, Title="Сообщение", dlg_Note(Title,"Привет, Мир!"), !.
Последнее отсечение в действительности не является необходимым и будет автоматически удалено компилятором Пролога, но это облегчает возможность вставить код при помощи меню вставки.
Теперь выберите пункт меню Project | Run (или нажмите кнопку ) для того, чтобы приложение выполнилось. При выборе команды Test | Привет, Мир! появится диалоговое окно, представленное на рис. 5.
Рис.5. Диалоговое окно, которое появится при выполнении приложения
Созданное приложение можно взять здесь (351 Кб)
На следующем шаге мы рассмотрим создание окна "Cross Window".