Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.02.01;
Скачать: CL | DM;

Вниз

Не пропадает Hint   Найти похожие ветки 

 
Alex_C   (2008-12-17 13:04) [0]

Проблема: нужно показать хинт, когда мышь находится на определенной области формы, и убрать его, когда она с этой области уходит. Вроде все просто: на MouseMove анализируем положение мыши и показываем или убираем хинт через создание или удаление THintWindow. Однако если эта обасть формы оказывается на границе формы, при выведеннии мыши за границы формы хинт не пропадает до тех пор, пока снова мышкой не наведешь на форму. Как от этого избавиться?


 
{RASkov} ©   (2008-12-17 13:14) [1]

> [0] Alex_C   (17.12.08 13:04)

Можно в таймере проверять положение мыши, и если "не в форме", то убирать хинт....
Можно реагировать на CM_MOUSEENTER и CM_MOUSELEAVE, но они "глючат"...


 
Alex_C   (2008-12-17 14:17) [2]

У меня несколько таких форм...
А каких то других идей нет?


 
Alex_C   (2008-12-17 15:08) [3]

В общем не знаю на сколько это верно, но решилось все таймером:

procedure TMainForm.HintCloseTimerTimer(Sender: TObject);
var
 WinControl: TWinControl;
 WinHWND: HWND;
 Pnt: TPoint;
begin
 GetCursorPos(Pnt);
 WinHWND := WindowFromPoint(Pnt);
 WinControl := FindControl(WinHWND);
 if (WinControl = nil) or (GetHintOwnerHandle <> WinControl.Handle) then
   CloseHintHx;
end;

Где - GetHintOwnerHandle - возвращает Handle окна, которое вызывало хинт.



Страницы: 1 вся ветка

Текущий архив: 2009.02.01;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
6-1197982424
user51
2007-12-18 15:53
2009.02.01
подключение к ADSL модему, нужно правильное отображение


15-1228719875
pavel_guzhanov
2008-12-08 10:04
2009.02.01
Как отключить оптимизатор в Delphi7


4-1205143556
dmitry_12_08_74
2008-03-10 13:05
2009.02.01
Как загрузить цветной или полупрозрачный курсор из файла ресурсов


1-1207547683
scat
2008-04-07 09:54
2009.02.01
Создание формы по имени класса формы


2-1229509444
RUBEY
2008-12-17 13:24
2009.02.01
Отправка SMS сообщений