Вниз
Скачать: CL | DM;

Определение позиции Мышки   Найти похожие ветки 

← →
nstur   (2006-09-11 14:13) [0]

Уважаемые Мастаки!!!
Как определить находится ли указатель мыши на форме или вне её?
Мне нужно раскрывать форму при наведении на неё мышкой и соответственно захлопывать (уменьшать в размерах) при сходе мышки.


← →
Elen ©   (2006-09-11 14:24) [1]

Как вариант :
procedure TForm1.Timer1Timer(Sender: TObject);
var p:tpoint;
begin
GetCursorPos(p);
if (p.X>=form1.left )and(p.Y>=form1.top  ) then
  FlashWindow(form1.Handle,true);
end;

Есть и другие...


← →
Zeqfreed ©   (2006-09-11 14:24) [2]

 TForm1 = class(TForm)
 private
   { Private declarations }
 public
   procedure CMMouseEnter(var Msg : TMessage); message CM_MOUSEENTER;
   procedure CMMouseLeave(var Msg : TMessage); message CM_MOUSELEAVE;
 end;

. . .

{ TForm1 }

procedure TForm1.CMMouseEnter(var Msg: TMessage);
begin
 inherited;
 //DoExpand();
end;

procedure TForm1.CMMouseLeave(var Msg: TMessage);
begin
 inherited;
 //DoCollapse();
end;


← →
Loginov Dmitry ©   (2006-09-11 16:25) [3]

Вариант с таймером надежнее.


← →
Zeqfreed ©   (2006-09-11 16:32) [4]

> [3] Loginov Dmitry ©   (11.09.06 16:25)

Не люблю извращаться. CMMouseEnter/Leave меня всегда вполне устраивают.


← →
nstur   (2006-09-12 11:11) [5]

Все хорошо, но CMMouseEnter/Leave работает только в приложении. А если мышь ушла вне его, то события не отрабатывают. Пришлось перекрывать Application.OnIdle:= IdleEvent; где
 try
   if PointInRect(Mouse.CursorPos, Self.BoundsRect) then
     FormActivate(Self)
   else
     FormDeactivate(Self);
 except
   on E:Exception do;
 end;

function PointInRect(const P: TPoint; const R: TRect): Boolean;
begin
 with R do
   Result := (Left <= P.X) and (Top <= P.Y) and
     (Right >= P.X) and (Bottom >= P.Y);
end;

Exception - пришлось добавить для выхода компа из спящего режима


← →
Loginov Dmitry ©   (2006-09-12 12:25) [6]

>   on E:Exception do;


Зачем?



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
2-1157718051
drashka
2006-09-08 16:20
2006.10.01
Incompatible types: TBasicAction and TCloseAction


15-1157808081
ferr
2006-09-09 17:21
2006.10.01
Java


2-1158064267
RagapuK
2006-09-12 16:31
2006.10.01
DLL+Delphi


15-1157898818
Дураг
2006-09-10 18:33
2006.10.01
А есть ли шаблоны проектирования в Delphi?


1-1155790814
DelphiLexx
2006-08-17 09:00
2006.10.01
Краткость инициализации записи




   Наверх