Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2013, 17:28   #1
Shkolota
Пользователь
 
Регистрация: 02.04.2013
Сообщений: 51
Восклицание Координаты мыши относительно родителя

Здравствуйте. Пишу компонент, и возникла необходимость вычислять внутри него координаты мыши, выполняя затем с ними какие-то действия. Делаю это при помощи функции GetCursorPos, она вычисляет экранные координаты. Но компонент может находиться как на форме, так на панели, и на нескольких, вложенных друг в друга панелях. Во всех этих случаях координаты компонента будут различаться. Мне нужно:

1. Или (как-то) вычислить координаты моего компонента относительно формы (Owner, как я понимаю), чтобы затем, вычислив координаты курсора относительно формы, я мог выполнять с ними соответствующие действия.

2. Или (как-то) вычислить координаты курсора относительно родителя моего компонента (Parent), исходя из того, что он может находиться в панели, вложенной в другую панель. В этом случае, затем я сравнивал бы полученные координаты с координатами компонента относительно родителя (то есть, с изначальными).

Я бы сделал все это при помощи цикла или рекурсии по родителям, спускаясь постепенно от Self.Parent (родителя моего компонента) до формы, в первом случае и поднимаясь от формы до компонента во втором. Есть ли варианты сделать это по-другому?

Итак, вопросы:

1. Как можно быстро найти координаты курсора относительно родителя компонента?
2. Как можно быстро найти координаты компонента, имеющего нескольких родителей, относительно формы-владельца данного компонента?
Shkolota вне форума Ответить с цитированием
Старый 09.12.2013, 17:31   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Control.ScreenToClient
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 09.12.2013, 17:42   #3
Shkolota
Пользователь
 
Регистрация: 02.04.2013
Сообщений: 51
По умолчанию

Аватар, спасибо. Смотрел на ScreenToClient, но не остановился на нем, видимо, голова не работает сегодня. Вопрос закрыт.
Shkolota вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Координаты мыши KOMPNET C++ Builder 12 15.05.2013 18:09
координаты мыши относительно формы David Villa C++ Builder 3 19.04.2012 16:59
TСhart, клик мыши и координаты XY, Определение координат оси при клике мыши Aravild Компоненты Delphi 1 31.01.2009 16:28
Координаты курсора относительно объекта на форме CoDeR Общие вопросы Delphi 4 01.08.2007 22:49
Координаты мышки НЕ относительно формы Nowichok Общие вопросы Delphi 2 27.02.2007 17:03