![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перевести координаты мыши в координаты объекта?
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