![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как узнать, что курсор мыши над иконкой в трее?
Turbid © (2006-03-31 22:34:00)У меня есть иконка в трее. Как узнать, что в данный момент курсор мыши находится над иконкой? Заранее благодарю.
Turbid (2006-04-01 13:11:00) [1]2sniknik
Ищите баги и издевайтесь:-)
Turbid (2006-04-01 13:08:00) [2]Я решил это так:
var
CursorPos: TPoint;
procedure TMainForm.WM_ICON(var Msg: TMessage);
begin
case Msg.LParam of
...
...
WM_MOUSEMOVE : GetCursorPos(CursorPos)
end;
end;
procedure TMainForm.MyProc;
var
Point: TPoint;
begin
GetCursorPos(Point);
if (Point.X = CursorPos.X) and (Point.Y = CursorPos.Y) then
ShowMessage('Cursor on Tray!!!');
end;
Delphi5.01 (2006-04-01 10:59:00) [3]rem2
Хорошее решение :-) Молодец
rem2 (2006-04-01 10:06:00) [4]WM_MOUSEMOVE: begin
sX:= Mouse.CursorPos.x;
sY:= Mouse.CursorPos.y;
if Timer1.Enabled then exit;
Timer1.Enabled:=true;
Caption:='Mouse YES';
AddModDelIcon(Handle,2,1,LoadIcon(0,IDI_APPLICATION),'Mouse YES')
end;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if (Mouse.CursorPos.x <> sX) or (Mouse.CursorPos.y <> sY) then begin
Caption:='Mouse NO';
Timer1.Enabled:=False;
AddModDelIcon(Handle,2,1,Application.Icon.Handle,'')
end;
end;
http://www.delphikingdom.info/asp/answer.asp?IDAnswer=+29588
sniknik (2006-04-01 09:42:00) [5]3) разобратся мог не до конца, и придумал глючную реализацию, со скрытым дефектом, которого сам не видиш, а на форуме покажут (ой покажут...;), тут хлебом не корми, дай над чужими ошибками поиздеваться ;о).
Delphi5.01 (2006-04-01 09:27:00) [6]В таком случае всегда лудше писать ответ по двум причинам
1) Может кто-то тоже интересуеться и он не будет второй раз задавать вопрос
2) Сам как забудиш придеш суда и найдеш свой вопрос, мне самому часто помогало :-) Вот только не знаю сколько времени на этом сайте хранять инфу :-)
Turbid (2006-04-01 02:08:00) [7]Уже разобрался сам.