![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как послать сообщение элементу, будто над ним находится мышь?
mmms © (2006-06-07 16:19:00)Хотелось бы показать хинт(Balloon), но не помещая мышь над сам элемент. Пытался
SendMessage(CheckBox1.Handle, WM_MOUSELEAVE, ???, 0);но плохо нужные сообщения представляю :(
StriderMan (2006-06-07 17:23:00) [1]Попробуй WM_MOUSEMOVE, WM_MOUSEHOVER
а еще можно напрямую вызвать
evvcom (2006-06-07 17:11:00) [2]Попробуй, может устроит?
// Почему-то некоторые контролы, например, PageControl, генерят дополнительные
// OnMouseMove (с теми же координатами), когда перемещения собственно и не было.
// Поэтому запоминаем старые координаты и анализируем.
var
PrevHintControl: TControl;
PrevCursorPos: TPoint;
procedure DoShowHint(Control: TControl);
var
l_P: TPoint;
l_Message: TWMMouse;
begin
if Control.Hint = '' then
Application.CancelHint
else begin
GetCursorPos(l_P);
if (Control = PrevHintControl) and (CompareValue(Int64(l_P), Int64(PrevCursorPos)) = 0) then Exit;
l_Message.Pos := PointToSmallPoint(Control.ScreenToClient(l_P));
Application.CancelHint;
Application.HintMouseMessage(Control, TMessage(l_Message));
PrevHintControl := Control;
PrevCursorPos := l_P;
end;
end;