Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB6REFRU.pdf
Скачиваний:
10
Добавлен:
13.02.2015
Размер:
3.83 Mб
Скачать

Предложения Control ListBox / MultiListBox

Предложения Control ListBox / MultiListBox

Назначение:

Часть оператора Dialog. Отвечают за создание списков.

Синтаксис:

Control { ListBox | MultiListBox }

[ Position x, y ] [ Width w ] [ Height h ] [ ID control_ID ]

[ Calling handler ]

[ Title { str_expr | From Variable str_array_var } ] [ Value i_selected ]

[ Into i_variable ]

[ Disable ] [ Hide ]

где

x, y – координаты левого верхнего угла окошка списка в окне диалога в специальных единицах измерения диалога (смотрите подраздел в описании оператора Dialog);

w – ширина окошка в единицах измерения диалога, по умолчанию – 80; h – высота окошка в единицах измерения диалога, по умолчанию – 70;

control_ID – целое число, которое должно быть уникальным по отношению к остальным идентификаторам элементов активного диалога;

handler – имя процедурыLобработчика, которая запускается при изменении пользователем выбора в списке или двойным указанием в списке;

str_expr – строковое выражение, которое задает текст строк списка; элементы списка разделены точкой с запятой (;);

str_array_var – имя массива строковых переменных;

i_selected – короткое целое число, задающее номер элемента списка, который будет выбран при открытии диалога, по умолчанию в списке не будет выбрано ни одной строки;

i_variable – имя переменной типа SmallInt, которая будет использоваться для сохранения значения выбора в списке после закрытия диалога.

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

Ключевое слово Hide прячет список из диалогового окна.

Описание:

Ключевые слова ListBox и MultiListBox в предложении Control оператора Dialog позволяют создавать в диалоге прямоугольную рамку со списком внутри, строки которого может выбирать пользователь. Если в окошко не вмещаются все строки списка, то окошко снабжается справа полосой прокрутки.

Список MultiListBox отличается от списка ListBox тем, что в первом пользователь может выбрать одновременно несколько строк или не выбрать ни одной. Выбор нескольких элементов осуществляется указанием на строку с нажатой клавишей CTRL или SHIFT (это зависит от вычислительной платформы).

Предложение Title задает строки списка. Если за словом Title задан список текстов в кавычках, через точку с запятой, то каждый текст будет определять одну строчку списка. Например:

Title "1 й квартал;2 й квартал;3 й квартал;4 й квартал"

Справочник MapBasic

91

Предложения Control ListBox / MultiListBox

Также список в предложении Title можно задавать массивом. В следующем фрагменте "s_optionlist" – имя строкового массива.

Title From Variable s_optionlist

Чтение значений элемента MultiListBox

Из процедурыLобработчика элемента Вы можете прочитать, сколько и какие именно строки выбраны сейчас в окошке списка при помощи функции ReadControlValue(_).

Для элемента MultiListBox существует специальная процедура чтения значений. В окошке списка этого элемента может быть не выбрано ни одной строки, выбрана одна строка, несколько или весь список. Соответственно, элемент может не иметь значений, а может иметь их несколько. Функция ReadControlValue(_), вызванная из обработчика элемента MultiListBox, может возвращать только одну величину за один вызов. Поэтому, для чтения всех значений необходимо функцию вызывать несколько раз. Первый вызов функции дает номер первой строки, выбранной в списке. Следующий – второй строки и т. д. Когда все значения будут прочитаны, функция вернет ноль. Если ноль будет получен при первом вызове, то, следовательно, в списке ничего не было выбрано.

Двойной щелчок мышки в списке

Для списка может быть объявлена процедураLобработчик, которая вызывается всякий раз, когда пользователь указывает на список. Причем это может быть простое указание, а может быть двойное, то есть, если быстро нажать два раза на клавишу мышки. Например, двойное указание в списке аналогично простому указанию и последующему нажатию на кнопку OK, которая закрывает диалог с подтверждением всех изменений значений элементов в диалоге.

Для определения, применялось ли пользователем двойное указание или нет, используется функция CommandInfo(_) в процедуре обработчика спискового элемента диалога. Пример такой процедуры обработчика приводится ниже:

Sub

lb_handler

Dim

i As SmallInt

If

CommandInfo(CMD_INFO_DLG_DBL) Then

'... если пользователь использовал двойное указание...

i = ReadControlValue( TriggerControl(_) ) Dialog Remove

'теперь i содержит номер выбранного элемента списка...

End If

End Sub

Пример:

Control ListBox

Title "1 ого квартала;2 ого квартала;3 его квартала;

4 ого квартала;текущего месяца;года"

ID 3

Value 1

Into i_quarter

Position 10, 92 Height 40

Смотрите также:

Alter Control, Dialog, ReadControlValue(_)

92 Справочник MapBasic

Предложения Control PenPicker / BrushPicker / SymbolPicker / FontPicker

Предложения Control PenPicker / BrushPicker / SymbolPicker / FontPicker

Назначение:

Часть оператора Dialog. Предложения отвечают за создание кнопок выбора стиля: линии, штриха, символа или шрифта.

Синтаксис:

Control { PenPicker | BrushPicker | SymbolPicker | FontPicker } [ Position x, y ] [ Width w ] [ Height h ]

[ ID control_ID ] [ Calling handler ]

[ Value style_expr ] [ Into style_var ]

[ Disable ] [ Hide ]

где

x, y – координаты левого верхнего угла кнопки в окне диалога в специальных единицах измерения диалога (смотрите подраздел в описании оператора Dialog);

w – ширина кнопки в единицах измерения диалога, по умолчанию 20; h – высота кнопки в единицах измерения диалога, по умолчанию 20;

control_ID – целое число, которое должно быть уникальным по отношению к остальным идентификаторам элементов активного диалога;

handler – имя процедурыLобработчика, которая запускается при нажатии кнопки "OK" в диалоге стиля;

style_expr – выражение типа Pen, Brush, Symbol или Font, которое задает начальное значение элемента;

style_var – имя переменной типа Pen, Brush, Symbol или Font (тип переменной должен соответствовать типу элемента диалога).

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

Ключевое слово Hide прячет кнопку из диалогового окна.

Описание:

Ключевые слова PenPicker, BrushPicker, SymbolPicker и FontPicker в предложении Control

оператора Dialog позволяют создавать в диалоге кнопку, нажатие на которую приводит к открытию стандартного диалога стиля оформления объектов. Предложение Control PenPicker отвечает за стиль линии, предложение Control BrushPicker – за стиль штриха, предложение Control SymbolPicker_– за стиль символа точечного объекта и предложение Control FontPicker – за стиль шрифта.

Пример:

Control SymbolPicker

Position 140, 42

Into sym_storemarker

Смотрите также:

Alter Control, Dialog, ReadControlValue( )

Справочник MapBasic

93

Предложение Control PopupMenu

Предложение Control PopupMenu

Назначение:

Часть оператора Dialog. Отвечает за создание раскрывающегося меню.

Синтаксис:

Control PopupMenu

[ Position x, y ] [ Width w ] [ ID control_ID ]

[ Calling handler ]

[ Title { str_expr | From Variable str_array_var } ] [ Value i_selected ]

[ Into i_variable ] [ Disable ]

где

x, y – координаты левого верхнего угла окошка меню в окне диалога в специальных единицах измерения диалога (смотрите подраздел в описании оператора Dialog);

w – ширина окошка в единицах измерения диалога, по умолчанию 80;

control_ID – целое число, которое должно быть уникальным по отношению к остальным идентификаторам элементов активного диалога;

handler – имя процедурыLобработчика, которая запускается при изменении выбора в списке; str_expr – строковое выражение, которое задает текст строк списка меню, где элементы списка разделены точкой с запятой (;);

str_array_var – имя массива строковых переменных;

i_selected – короткое целое число, задающее номер элемента списка меню , который будет показан в окошке при открытии диалога, по умолчанию будет показан первый элемент;

i_variable – имя переменной типа SmallInt, которая будет использоваться для сохранения номера выбранного в меню элемента после закрытия диалога.

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

Описание:

Ключевое слово PopupMenu в предложении Control оператора Dialog позволяет создавать в диалоге меню, представляющее собой однострочное окошко с кнопкой справа. Нажатие на кнопку раскрывает комбинированное окошко списка, в котором пользователь может выбрать строчку. Выбранная строка будет отображена в окошке.

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

Title "Город;Область;Территория;Регион;Вся страна"

Список в предложении Title можно также задавать массивом. В следующем фрагменте "s_optionlist" – имя строкового массива.

Title From Variable s_optionlist

Пример:

 

Control

PopupMenu

Title

"Город;Область;Территория;Регион;Вся страна"

Value

2

94

Справочник MapBasic

Предложение Control PopupMenu

ID 5

Into mapscope

Position 10, 150

Смотрите также:

Alter Control, Dialog, ReadControlValue( )

Справочник MapBasic

95

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]