Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
nexys
Зарегистрирован: 26.02.2010 Сообщения: 6
|
Добавлено: Пт Фев 26, 2010 5:32 pm Заголовок сообщения: Программное нажатие на кнопку из Delphi |
|
|
Доброго времени суток!
Подскажите, как программно из delphi нажать на кнопку, которую я сам же и создал.
Код: |
create menu "TEST" as
"test2" calling button1
Alter Menu "TEST" Add "Поиск"
Create ButtonPad "Поиск" As
pushbutton Calling button1 ID 1
Icon MI_ICON_REALESTATE_2
pushbutton
Icon MI_ICON_TRANSPORT_19
calling qqqqq
Width 2
fixed
|
Вот на кнопку "Поиск" и надо нажать из делфи. |
|
Вернуться к началу |
|
|
Андрей Могильный
Зарегистрирован: 21.03.2006 Сообщения: 864
|
Добавлено: Пт Фев 26, 2010 9:46 pm Заголовок сообщения: |
|
|
Может просто достаточно вызывать обработчик кнопки? В вашем случае некая процедура qqqqq |
|
Вернуться к началу |
|
|
nexys
Зарегистрирован: 26.02.2010 Сообщения: 6
|
Добавлено: Сб Фев 27, 2010 9:09 am Заголовок сообщения: |
|
|
Спасибо, что откликнулись.
Возможно я делаю что-то неверно, но судя по руководству пользователя, для вызова процедуры служит команда calling. И вот если я делаю:
Код: |
command:='calling qqqqq';
MapInfoServer.Do(command);
|
То получаю ошибку, которую MapInfo передает в Delphi:
|
|
Вернуться к началу |
|
|
zzzio
Зарегистрирован: 20.04.2008 Сообщения: 24
|
Добавлено: Сб Фев 27, 2010 9:44 am Заголовок сообщения: |
|
|
Не очень хорошо помню, но разве в делфи нужно запускать команду calling? Что если просто выполнить процедуру qqqqq?
command:='qqqqq';
MapInfoServer.Do(command); |
|
Вернуться к началу |
|
|
nexys
Зарегистрирован: 26.02.2010 Сообщения: 6
|
Добавлено: Сб Фев 27, 2010 9:49 am Заголовок сообщения: |
|
|
zzzio писал(а): |
Не очень хорошо помню, но разве в делфи нужно запускать команду calling? Что если просто выполнить процедуру qqqqq?
command:='qqqqq';
MapInfoServer.Do(command); |
Увы, но нет. В данном случае получаю сообщение отладчика - "Команда qqqqq не опознана." |
|
Вернуться к началу |
|
|
zzzio
Зарегистрирован: 20.04.2008 Сообщения: 24
|
Добавлено: Сб Фев 27, 2010 11:23 am Заголовок сообщения: |
|
|
Опять же не уверен, но возможно нужно использовать оператор call, а не calling.
command:='call qqqqq';
MapInfoServer.Do(command);
Если процедура qqqqq имеет параметры, то в скобках нужно их указать |
|
Вернуться к началу |
|
|
nexys
Зарегистрирован: 26.02.2010 Сообщения: 6
|
Добавлено: Сб Фев 27, 2010 12:33 pm Заголовок сообщения: |
|
|
zzzio писал(а): |
Опять же не уверен, но возможно нужно использовать оператор call, а не calling.
command:='call qqqqq';
MapInfoServer.Do(command);
Если процедура qqqqq имеет параметры, то в скобках нужно их указать |
Та же самая ошибка.
Решил проблему создав новый модуль (приложение *.mbx) с текстом содержащимся в qqqqq.
Из дельфи вызываю его командой:
Код: |
command:='Run Application "C:\uiapp\epxDataToTxt.MBX"';
// command:='call qqqqq';
MapInfoServer.Do(command);
|
|
|
Вернуться к началу |
|
|
FedorinoFF
Зарегистрирован: 01.02.2007 Сообщения: 272 Откуда: Санкт-Петербург
|
Добавлено: Вс Фев 28, 2010 8:35 pm Заголовок сообщения: |
|
|
я бы посоветовал обратить внимание на раздел "Интегрированная картография" в справке по MapBasic и, там же, "Объектная модель механизма управления объектами OLE". Думаю многое станет понятнее |
|
Вернуться к началу |
|
|
|