Главная страница
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.045 c
15-1157667031
SerJaNT
2006-09-08 02:10
2006.10.01
Новая версия jViewer 1.1 - Зацените!


2-1158034779
Steep
2006-09-12 08:19
2006.10.01
Копирование файлов по списку


15-1158051023
worldmen
2006-09-12 12:50
2006.10.01
Проблема с компом.


11-1132952788
Vedun
2005-11-26 00:06
2006.10.01
Добавление формы в проект


2-1157965203
Opilki_Inside
2006-09-11 13:00
2006.10.01
Как перевести байты в килобайты и мегобайты