Глава 6: Интерфейс пользователя
130 MapBasic Руководство пользователя
y2 = CommandInfo(CMD_INFO_Y2)
' Используя значения x1, y1, x2 и y2, можно
создавать объект.
End Sub
В этом примере оператор Create ButtonPad содержит слово ToolButton
вместо PushButton. Это говорит MapBasic, что кнопка будет
использоваться как инструмент.
В определение ToolButton входит предложение DrawMode. Это
предложение сообщает MapBasic, может ли пользователь, нажав
кнопку мышки, перемещать объекты. В предыдущем примере задается
режим DM_CUSTOM_LINE; это значит, что пользователь может
использовать инструмент точно так же, как стандартный инструмент
Линия. Если бы был задан режим DM_CUSTOM_POINT, пользователь
не смог бы перемещать объекты мышкой с нажатой кнопкой.
Предложение DrawMode также позволяет определить, увидит ли что
нибудь пользователь на экране, перемещая мышь с нажатой кнопкой.
В режиме DM_CUSTOM_LINE, MapBasic показывает линию между
точкой начала рисования и текущим положением курсора до тех пор,
пока пользователь не отпустит кнопку мыши. Если задан режим
DM_CUSTOM_RECT, то MapBasic рисует динамический
прямоугольник, следуя за перемещением курсора.
Вне зависимости от того, какой задан режим DrawMode, MapInfo
вызывает процедуруобработчик для кнопки после того, как
пользователь отпустит кнопку мыши. Если пользователь отменит
операцию (например, нажатием на ESC при перемещении указателя
мыши), MapInfo не вызывает обработчик. В теле процедуры
обработчика можно использовать функцию CommandInfo( ) для
определения точки, в которой пользователь нажал кнопку мыши.
Режимы рисования и их коды перечислены в файле ICONS.DEF, а
также в разделах Alter ButtonPad в Справочнике MapBasic.
Выбор пиктограммы для создаваемой кнопки
Когда Вы определяете новую кнопку, Вы указываете пиктограмму,
которая появляется на кнопке. Определить, какая пиктограмма
нужна, позволяет предложение Icon.
Ключевое слово Icon сопровождается кодом из файла ICONS.DEF.
Например, следующий оператор определяет кнопку, которая
использует пиктограмму для кнопки Info MapInfo's. Код
MI_ICON_INFO определен в файле ICONS.DEF.
Alter ButtonPad ”Операции”
Add Separator