Форум: "Начинающим";
Текущий архив: 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.014 c