Глава 6: Интерфейс пользователя
MapBasic Руководство пользователя
111
В каждом диалоге должно быть не более одной кнопки типа OKButton
и не более одной кнопки типа CancelButton. Можно, конечно, обойтись
без них; однако, рекомендуется все же добавлять в диалоге хотя бы
одну из двух кнопок "OK" или "Отмена", чтобы пользователь мог
закрыть диалог. С каждой из кнопок можно связать процедуру
обработчик, и, если Вы нажмете такую кнопку, MapBasic сначала
выполнит процедуру, а затем продолжит выполнение программы после
оператора Dialog.
Каждый элемент диалога детально описан в Cправочнике MapBasic.
Например, элемент ListBox описан в главе Control Listbox.
Задание начального значения элемента
В описании большинства элементов может содержаться предложение
Value. Оно определяет значение или установку элемента диалога сразу
после его открытия. Например, если Вы хотите, чтобы при открытии
диалога был выбран четвертый элемент в списке (элемент ListBox),
добавьте следующее предложение Value в описание элемента ListBox:
Value 4
Если предложение Value опущено, MapInfo самостоятельно
подставляет стандартные значения. Например, флажок (элемент
CheckBox) стандартно установлен. Более подробные сведения о
предложениях Value приведены в соответствующих описаниях
элементов в Cправочнике MapBasic (главы Control...).
Считывание установок диалога
В описании большинства элементов может содержаться предложение
Into. Оно определяет переменную, в которой запоминается значение
или установка элемента диалога после его закрытия. Для того, чтобы
MapBasic запомнил значение или установку в переменной, заданной
предложением Into, нужно закрыть диалог нажатием на кнопку "OK".
Переменная, задаваемая после слова Into, должна быть задана как
локальная или глобальная в Вашей программе и, разумеется, должна
по типу соответствовать элементу диалога. Например, переменная для
элемента EditText должна быть строковой (типа String), а для флажка
(CheckBox) должна быть логической (TRUE означает установку
флажка, а FALSE – сброс). В Справочнике MapBasic содержится более
подробная информация о задании переменных для каждого типа
элемента диалога.
Внимание: После того, как пользователь закроет диалог, нажав на
кнопку "OK", MapBasic помещает значения во все
переменные, заданные предложениями Into; если же Вы
хотите прочитать их в то время, пока диалог еще открыт,
воспользуйтесь функцией ReadControlValue( ). Эта функция
может вызываться только из процедурыобработчика диалога,