Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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


Aleksandr ©   (2001-12-21 12:53:00) 

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


Aleksandr   (2001-12-21 13:24:00) [1]

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


Lusha   (2001-12-21 13:21:00) [2]

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

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


Alx2   (2001-12-21 13:06:00) [3]

Если бегаем мышью на 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:02:00) [4]

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


Aleksandr   (2001-12-21 13:01:00) [5]

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


Alx2   (2001-12-21 12:58:00) [6]

см. ClientToScreen


Наверх

Титульная страница Поиск, карта сайта Написать письмо