Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.02.2010, 09:41   #11
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

я делаю так:
Код:
    ShowMessage('Навести курсор на карту. 2 секунды');
    sleep(2000);
    GetCursorPos(pPoint);
    hMap := WindowFromPoint(pPoint);
    ShowMessage('Навести курсор на тулбар. 2 секунды');
    sleep(2000);
    GetCursorPos(pPoint);
    hToolBar := WindowFromPoint(pPoint);
т.е. таким образом я получаю хендлы пальки тулбара и панельки на которой рисуют саму карту (да-да, никаких тулбаров и паинтбоксов, это дельфи-копейка)
а потом вызываю процедуру кликанья по карте:
Код:
procedure ClickToMap(X, Y : integer);
begin
  PostMessage(hMap,WM_LBUTTONDOWN,MK_LBUTTON,MakeWord(x,y));
  PostMessage(hMap,WM_LBUTTONUP,MK_LBUTTON,MakeWord(x,y));
end;
и процедуру кликанья по кнопочке тулбара:
Код:
procedure ClickInfoBtn;
begin
  PostMessage(hToolBar,WM_LBUTTONDOWN,MK_LBUTTON,MakeWord(85,1));
  PostMessage(hToolBar,WM_LBUTTONUP,MK_LBUTTON,MakeWord(85,1));
end;
Так вот. клик по карте работает, т.е. карта реагирует, а вот на клик по кнопке тулбара ничего не происходит, хотя должно.
что-то не так?
Bayazet вне форума Ответить с цитированием
Старый 05.02.2010, 09:47   #12
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Ну если ты с координатами не провтыкал, то видимо тулбар тот просто не обрабатывает сообщения WM_LBUTTON
Попробуй BM_CLICK и прочие сообщения кликов.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2010, 10:03   #13
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

а есть еще какой-нибудь способ кликать? не PostMessage?
пробовал
Код:
  PostMessage(hToolBar,BM_CLICK,MK_LBUTTON,MakeWord(85,1));
тоже не кликает
Bayazet вне форума Ответить с цитированием
Старый 05.02.2010, 10:14   #14
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а есть еще какой-нибудь способ кликать?
Не представляю...
В таких ситуациях я обычно с помошью SpyXX вылавливаю какое сообщение приходит окну, и уже отталкиваюсь от его результатов
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 05.02.2010, 10:50   #15
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

Код:
procedure TVirtualMap.MoveMapRight;
begin
  ClickMoveBtn;
  PostMessage(hMap,WM_LBUTTONDOWN,MK_LBUTTON,MakeWord(415,50)); (!)
  PostMessage(hMap,WM_LBUTTONUP,MK_LBUTTON,MakeWord(0,50)); (!)
end;
на строчках с (!) выдает: [DCC Error] perehvat.pas(132): E1012 Constant expression violates subrange bounds
с чего это он вдруг?
Bayazet вне форума Ответить с цитированием
Старый 05.02.2010, 11:07   #16
Bayazet
Форумчанин
 
Регистрация: 08.12.2008
Сообщений: 156
По умолчанию

и еще: можно ли получить Caption панельки по ее хендлу? точнее я понимаю, что можно. только как?
Bayazet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как обратиться к текстовому окну caveman Общие вопросы Delphi 0 27.09.2009 14:35
Вопрос по активному окну san72 Общие вопросы Delphi 11 07.03.2009 12:05
от консоли к окну ёжик Общие вопросы C/C++ 3 06.04.2008 17:51
Возможна ли обработка двойного щелчка мышью на кнопке (TButton)? Brother Win Api 3 04.12.2007 08:32
Сообщение другому окну Бонарт Win Api 13 15.08.2007 20:23