
Глава 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