Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.17;
Скачать: CL | DM;

Вниз

Считывание координат с Формы   Найти похожие ветки 

 
scorpi ©   (2003-11-06 07:56) [0]

Как отловить события мышки определенные в форме на других элементах? Например я в свойстве формы MouseMove определяю координаты курсора (X,Y) на форме но при перемещении на компонент TEdit координаты не считываются....Как это обойти?


 
Спрашивающий_   (2003-11-06 08:22) [1]

Для примера, но не для готового решения
procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
SetCapture(Handle);
Text:=IntToStr(X)+"/"+ IntToStr(Y)
end;


 
Юрий Зотов ©   (2003-11-06 08:26) [2]

Вариантов много, например:
1. Назначить общий обработчик OnMouseMove для формы и всех ее контролов.
2. Повесить локальный мышиный хук.
3. Использовать Application.OnMessage.

Рекомендую третий способ - потому что он достаточно простой, но при этом универсальный (пишется один раз, работает для любой формы и любого ее контрола и не требует никаких доработок самих форм). Пример есть в справке.


 
Спрашивающий_   (2003-11-06 09:07) [3]

Да вариант предложенный Юрием Зотовым поудачней будет,
у моего варианта есть недостатки, пример пункта 3.
procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
var Handled: Boolean);
var
P:TPoint;
begin
If Msg.message=wm_MouseMove Then
begin
GetCursorPos(P);
P:=ScreenToClient(P);
Text:=IntToStr(P.x)+"/"+IntToStr(P.y)
end;

end;


 
REA ©   (2003-11-06 09:29) [4]

WndProc(var Message: TMessage) наверно еще можно перегрузить для формы



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

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

Наверх




Память: 0.47 MB
Время: 0.018 c
1-56686
TRyaSS
2003-11-06 15:21
2003.11.17
Как в Паскале вычислить корень 3 или 4 или n степени


14-56882
MPS
2003-10-26 04:35
2003.11.17
Borland C++ НЕ Устанавливается на WinXP


1-56760
slivka
2003-11-06 14:09
2003.11.17
Проблема с циклoм For To do.


3-56465
Raduga
2003-10-28 09:02
2003.11.17
Отображение датывремени


3-56520
Шурик Ш
2003-10-27 17:13
2003.11.17
Sos me! Не понимаю, где ошибка...