Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как отключать нажатие кнопок после выбора системной кнопки Help? [D7, WinXP]


Aleksandr. ©   (2006-08-16 14:18:00) 

К программе подключена справочная система. Диалоговое окно имеет biHelp в BorderIcons. После щелчка по кнопке справки и клика на любом визуальном объекте, кроме кнопок нормально открывается справка, а если кликнуть по TButton или TSpeedButton - срабатывает обработчик клика на эту кнопку. Есть какой-то универсальный механизм, которым можно это убрать, или нужно на каждой кнопке ставить проверку, не является ли курсор мыши справочным, и вызывать HelpContext в этом случае? Как, кстати, вообще, помимо состояния курсора, узнать, что была нажата кнопка справки?


Loginov Dmitry   (2006-08-17 07:45:00) [1]

щелчка по кнопке справки и клика на любом визуальном объекте, кроме кнопок нормально открывается справка, а если кликнуть по TButton или TSpeedButton - срабатывает обработчик клика на эту кнопку.

Про TButton - это вы зря. Все контроллы, имеющие свойство Handle (они имеют общего предка TWinControl), обрабатывают клик в данном режиме правильно (вернее (скорее всего) они его вообще не обрабатывают - винда просто не посылает некоторых сообщений контроллам в данном режиме).
Про компоненты, идущие от TGraphicControl винда не знает ничего, поэтому такая лажа. Однако, если вы утвеждаете, что можете определить не является ли курсор мыши справочным, то для блокировки сообщений мыши достаточно следующего кода:


procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
 var Handled: Boolean);
begin
 if НаЭкранеКурсорСправки then Handled := not Handled
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо