Вниз
Скачать: CL | DM;

Как перевести координаты мыши в координаты объекта?   Найти похожие ветки 

← →
Aleksandr ©   (2001-12-21 12:53) [0]

Что-то я отупел уже... Мне при событии OnMouseDown надо X и Y перевести в координаты своего графического объекта, который находится на панели, которая находится на панели и т.д. Как можно автоматизировать этот процесс? Я так понимаю, координаты мыши ведут отсчет от начала формы?


← →
Alx2 ©   (2001-12-21 12:58) [1]

см. ClientToScreen


← →
Aleksandr ©   (2001-12-21 13:01) [2]

Пробовал... Не совпадает... К примеру, высота нажатия от начала координат объекта=47, а ScreenToClient возвращает 77.


← →
Lusha ©   (2001-12-21 13:02) [3]

(Задумчиво так)
А есть еще системные константы определяющие величину заголовка окна, и borders.


← →
Alx2 ©   (2001-12-21 13:06) [4]

Если бегаем мышью на Form1, то

procedure TForm1.RxDBGrid1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
Var P : TPoint;
begin
P := MyGraphicsObject.ScreenToClient(ClientToScreen(point(x,y)));
end;

Иначе ClientToScreen вызываем объекта Sender.
(Именно этот пример не проверял, правда. "Но истина где-то рядом" (c) агент Малдер)


← →
Lusha ©   (2001-12-21 13:21) [5]

Координаты мыши ведут отсчет от начала клиентской области окна. Поэтому иногда и приходится вспоминать GetSystemMetrics. Правда, если честно, я так и не понял, чего Вы хотите в итоге... (

P.S. Ну, расслабленный я сегодня. Уж, извините.


← →
Aleksandr ©   (2001-12-21 13:24) [6]

Сорри, вопрос закрыт... Обработчик не инхеритил... Всем спасибо.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.007 c
3-28413
Yavfast
2001-12-08 10:37
2002.01.10
Создание объектов-полей в Runtime


1-28491
MK
2001-12-21 21:28
2002.01.10
Как перемещать картинку в TImage мышью


1-28505
ctapik-net
2001-12-23 09:44
2002.01.10
Как массив типа Array Of Array Of String сохранить в TMemoryStream и обратно?


14-28543
Anatoly Podgoretsky
2001-11-02 22:29
2002.01.10
Я в шоке 2


1-28494
Man In Red
2001-12-22 21:08
2002.01.10
Извините, но приходится еще раз задать этот вопрос, не получается все никак по нормальному сделать! Помогите пожалуйста!




   Наверх