6.10.7. Создание диалогового окна командной строки

На верх  Назад  Вперёд

Когда определяется инструмент, имеется возможность отобразить для пользователя диалоговое окно, запрашивающее дополнительные аргументы, используя макрокоманду $PROMPT(ИмяФайла). Дистрибутив Free Pascal содержит несколько готовых диалоговых окон, таких как окно инструмента grep. Файлы этих окон находятся в каталоге установки программы и имеют расширение .tdf.

В этом разделе разъясняется формат файла описания диалогового окна. Формат этого файла имеет сходство с .INI-файлами Windows, где каждый раздел в файле описывает какой-либо элемент (или управление) в окне. Кнопки ОК и Cancel будут автоматически добавлены в нижнюю часть окна, поэтому нет необходимости указывать их при определении диалогового окна.

В файле имеется специальный раздел Main, который описывает общий размер окна и то, каким образом выходной результат окна будет помещён в командную строку.

ПРИМЕЧАНИЕ

При использовании ключевых слов, содержащих строковые значения, эти значения должны заключаться в двойные кавычки, например:
Title="Dialog title"

Раздел Main должен содержать следующие ключевые слова:

Ключевое слово

Перевод

Описание

Title

Заголовок

Заголовок окна. Отображается в рамке заголовка окна. Строка должна заключаться в двойные кавычки.

Size

Размер

Размер окна. Задаётся в формате (Столбцы, Строки), например:
 
Size=(59,9)
 
означает, что окно имеет 59 символов в ширину и 9 в высоту. В этот размер не входит рамка окна.

CommandLine

Командная строка

Определяет, каким образом командная строка будет передана в программу, основываясь на данных, введённых в диалоговом окне. Напечатанный здесь текст будет передан после замещения некоторых элементов управления их значениями. Элемент управления – это имя какого-либо элемента в окне, заключённое между символами процента (%). Имя элемента управления будет заменяться текстом, который связан с этим элементом. Рассмотрим пример:
 
CommandLine="-n %l% %v% %i% %w% %searchstr% %filemask%"

Здесь значения, связанные с элементами управления с именами l, v, i, w и searchstr и filemask будут вставлены в командную строку.

Default

По умолчанию

Имя элемента управления, который является элементом по умолчанию, то есть элемент, который имеет фокус при открытии окна. В следующем примере показан правильный раздел main:

[Main]
Title="GNU Grep"
Size=(56,9)
CommandLine="-n %l% %v% %i% %w% %searchstr% %filemask%"
Default="searchstr"

После раздела main требуется определить раздел для каждого элементу управления, который отображается в диалоговом окне. Каждый раздел имеет имя элемента, который описывается в разделе, например:

[CaseSensitive]
Type=CheckBox Name="~C~ase sensitive"
Origin=(2,6)
Size=(25,1)
Default=On
On="-i"

Каждый раздел элемента должен иметь необходимый минимум ключевых слов, связанных с ним, которые описаны ниже.

Описание ключевых слов раздела элемента управления:

Ключевое слово

Перевод

Описание

Type

Тип

Тип элемента управления. Возможны следующие значения:

Label (Надпись)

Обычная текстовая надпись, которая будет отображаться в окне. Какой-либо другой элемент управления может быть связан с этой надписью таким образом, что фокус будет переходить на этот элемент управления, если пользователь нажмёт клавишу с буквой, которая подсвечена в этой надписи.

InputLine (Ввод текста)

Редактируемое поле для ввода данных, где можно ввести текст.

CheckBox (Флажок)

Флажок, который может принимать два состояния (установлен или сброшен).

Origin

Начальная координата

Определяет, где должен размещаться элемент управления. Начальная координата указывается в формате (Левый, Верхний), а левый верхний угол окна имеет координаты (1, 1) (не учитывая рамку окна).

Size

Размер

Определяет размер элемента управления в формате (Столбцы, Строки).

Каждый элемент управления имеет некоторые специальные ключевые слова, связанные с этим элементом. Эти ключевые слова будут описаны ниже.

Элемент «Надпись» (Type=Label) имеет следующие специфические ключевые слова:

Ключевое слово

Перевод

Описание

Text

Текст

Текст, отображаемый в надписи. Если одна из букв текста должна быть подсвечена, для того, чтобы имелась возможность использовать её как «горячую клавишу», то она должна быть заключена в символы тильды (~). Например, в тексте Text="~T~ext to find" будет подсвечена буква Т.

Link

Ссылка

Здесь можно указать имя элемента управления окна. Если имя указано, то нажатие комбинации клавиш ALT с буквой, которая подсвечена в надписи, переведёт фокус на элемент, указанный в данном параметре.

Элемент «Надпись» не применяется для передачи текста в командную строку. Этот элемент используется только для информирования и навигации. В следующем примере описан раздел с элементом «Надпись»:

[label2]
Type=Label
Origin=(2,3)
Size=(22,1)
Text="File ~m~ask"
Link="filemask"

Элемент «Ввод текста» (Type=InputLine) позволяет вводить любой текст. Текст из этого элемента будет передан в командную строку, если в этом есть необходимость. Для этого элемента имеются следующие специфические ключевые слова:

Ключевое слово

Перевод

Описание

Value

Значение

Можно указать стандартное значение (текст), которое будет автоматически выводиться в этот элемент при открытии окна (значение по умолчанию).

В следующем примере описан раздел с элементом «Ввод текста»:

[filemask]
Type=InputLine
Origin=(2,4)
Size=(22,1)
Value="*.pas *.pp *.inc"

Элемент «Флажок» (Type=CheckBox) может принимать два состояния (установлен или сброшен). Значение, связанное с каждым из этих состояний, может быть передано в командную строку. Для этого элемента имеются следующие специфические ключевые слова:

Ключевое слово

Перевод

Описание

Name

Имя

Текст, который отображается рядом с флажком. Если в тексте есть подсвеченная буква, то можно установить или сбросить состояние флажка комбинацией клавиш ALT-БУКВА.

Default

По умолчанию

Определяет значение по умолчанию (сброшен или установлен) при открытии окна.

On

Установлен

Текст, связанный с этим флажком, если он установлен.

Off

Сброшен

Текст, связанный с этим флажком, если он сброшен.

В следующем примере описан раздел с элементом «Флажок»:

[i]
Type=CheckBox
Name="~C~ase sensitive"
Origin=(2,6)
Size=(25,1)
Default=On
On="-i"

В этом примере, если флажок установлен, то значение –i будет добавлено в командную строку инструмента. Если флажок сброшен, то никакое значение не будет добавлено.