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