Шаг 72.
Visual Prolog.
Стандартные диалоговые окна

    На этом шаге мы рассмотрим стандартные диалоговые окна.

    Стандартные диалоговые окна ускоряют и облегчают разработку приложений. Стандартное диалоговое окно может быть создано приложением при помощи простого вызова одного предиката. Обычные же диалоговые окна требуют обработчика событий и описания ресурсов, содержащих вид диалогового окна. Вызовы стандартных диалоговых окон могут быть вставлены в приложение при помощи команды Edit | Insert | Predicate call | Window, Dialog or Toolbar.

Получение ответа пользователя на вопрос Yes/No и Cancel

   Integer=dlg_Ask(PromptString,ButtonTitleList)
   Integer=dlg_Ask(TitleString,PromptString,ButtonTitleList)
   Integer=dlg_Ask(ParentWindow,TitleString,PromptString,ButtonTitleList)

    Предикат dlg_Ask отображает небольшое диалоговое окно, которое имеет три кнопки. Названия кнопок задаются в списке ButtonTitleList. Обычно это кнопки Yes, No и Cancel. Возможные ответы соответствуют порядку в списке ButtonTitleList и определяют, какая кнопка была нажата.

   resp_default=0
   resp_2=1 
   resp_3=2

    Например, следующий вызов:

   _Answer=dlg_Ask("MyTitle","MyPrompt", 
      ["MyButton1","MyButton2","MyButton3"])

отобразит диалоговое окно, показанное на рис. 1.


Рис.1. Стандартное диалоговое окно dlg_Ask

Выбор файла для открытия/сохранения

   string /*FirstFileName=*/ dlg_GetFileName(
      string InitMask,slist Types,Title,ilist Flags,StartPath,
      slist SelectedFileNames)

    Предикат dlg_GetFileName используется для подготовки диалогового окна, где пользователь может выбрать файл для открытия/сохранения.

    Здесь InitMask - заданная по умолчанию маска файла. Types - список альтернативных масок файлов, которые пользователь может выбрать. Title - определяет заголовок диалогового окна. Flags - список флагов, определяющих свойства диалогового окна. StartPath - определяет начальный каталог для поиска файлов. Если StartPath = "", используется текущий каталог. Предикат FirstFileName возвращает полное имя первого выбранного файла.

    Предикат dlg_GetFileName позволяет пользователю выбирать список файлов, если определен флаг dlgfn_MultiSel в списке Flags. SelectedFileNames - выходной параметр, содержащий список всех выбранных файлов. Если определен флаг dlgfn_Save, то будет отображено диалоговое окно Save As. Если выбранный файл уже существует, то диалоговое окно Save As генерирует окно сообщения, в котором пользователь должен подтвердить перезапись файла. Если флаг dlgfn_save не определен, то отображается диалоговое окно Open File (по умолчанию).

    Например, рассмотрим следующий вызов:

   Flags=[dlgfn_MultiSel],
   FirstFileName=dlg_GetFileName("*.pro",
      ["Prolog Files(*.pro)","*.pro","Prolog Headers(*.pre,)","*.pre",
      "All  Files   (*.*)",   "*.*",   ],
      "MyTitle",Flags,"",OutFileNames)

    Он приведет к диалоговому окну, показанному на рис. 2.


Рис.2. Стандартное диалоговое окно dlg_GetFileName

Ввод строки

   String=dlg_GetStr(Title,MessageString,InitString) 
   String=dlg_GetStr(ParentWindow,Title,MessageString)

    Предикат dlg_Getstr используется для ввода строки.

    Следующий предикат:

   _NewString=dlg_GetStr("MyTitle","MyMessage","InitStr")

приведет к диалоговому окну, показанному на рис. 3.


Рис. 3. Стандартное диалоговое окно dlg_GetStr

    На следующем шаге мы продолжим рассматривать стандартные диалоговые окна.




Предыдущий шаг Содержание Следующий шаг