Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.10.01;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.044 c
15-1158061506
Внук
2006-09-12 15:45
2006.10.01
Стукачество


4-1148823766
ффф
2006-05-28 17:42
2006.10.01
виртуальный com порт


2-1157968494
Chuk &amp; Gek
2006-09-11 13:54
2006.10.01
Защита


2-1157839282
progdev
2006-09-10 02:01
2006.10.01
Оптимальный методь поиска в тхт файлов


15-1157637192
oldman
2006-09-07 17:53
2006.10.01
Завтра по СТС "ночной дозор"...