Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.019 c
9-1136242899
aleccc
2006-01-03 02:01
2006.10.01
opengl


15-1157829509
Ketmar
2006-09-09 23:18
2006.10.01
Сатана, Сатана... вот ЭТО -- вопрос


2-1158076753
Василий
2006-09-12 19:59
2006.10.01
DBGide


1-1155885997
Mechanic
2006-08-18 11:26
2006.10.01
Отрисовка Формы


15-1157876075
kull
2006-09-10 12:14
2006.10.01
Какой браузер лучше?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский