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

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

Вернуться   Форум программистов > Delphi программирование > Мультимедиа в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2014, 17:55   #1
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию получения координат мыши относительно формы без таймера

Извеняюсь если вопрос уже задавался но в гугле 3 страницы просмотрел там либо таймер либо MouseMove собственно вопрос в теме тоесть цель необходимо получить координаты курсора мыши относительно формы не используя таймера
А MouseMove не подходит так как у меня форма в основном на ней динамические объекты а цель получения координат мыши необходимо для отслежки в каких координатах нужно расположить динамические лейблы узнать этого нельзя так как имаджи на которых нужно разместить лэйблы размещаются динамически тоесть програмным путем темболее через массив
Вот скрин

Пока нумерация сделана через фотошоп но мне охото сделать програмно темболее она будет тогда качественее и даст пару возможностей.
Alexandr17 вне форума Ответить с цитированием
Старый 31.08.2014, 19:08   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
на ней динамические объекты
А что к динамически созданным объектам событие прикрутить уже нельзя?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.08.2014, 21:03   #3
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

можно но мнебы не хотелось использовать событие формы MouseMove и перенаправления
Alexandr17 вне форума Ответить с цитированием
Старый 31.08.2014, 21:31   #4
cotseec
Пользователь
 
Регистрация: 02.05.2012
Сообщений: 45
По умолчанию

где необходимо работать с координатами мыши или Mouse.CursorPos или GetCursorPos function (будут получены экранные координаты), чтобы перевести в относительные ScreenToClient function или одноименный метод TWinControl
Skype: cotseec
ICQ: 330-171-495
cotseec вне форума Ответить с цитированием
Старый 31.08.2014, 22:06   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
мнебы не хотелось использовать
А почему если не секрет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2014, 04:45   #6
милт
Форумчанин
 
Регистрация: 19.03.2012
Сообщений: 108
По умолчанию

Вау Дюна, первая игра на Сега которую я играл до неё была только денди.
милт вне форума Ответить с цитированием
Старый 01.09.2014, 05:21   #7
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А почему если не секрет?
Ну кокто не привычно для меня привычние через API темболее уже делал только забыл как толи через LParam толи что не помню

темболее цель получить координаты курсора относительно формы а не другого объекта.

нашел что искал
Код:
procedure CMMouseLeave(var Mes: TMessage); message CM_MOUSELEAVE;
...
procedure TForm1.CMMouseLeave(var Mes: TMessage);
begin
  if (TControl(Mes.LParam) is TSpeedButton) and (TControl(Mes.LParam) = SpeedButton1) then
    SpeedButton1.Caption:='Lv'
  else inherited;
end;
то что нужно без таймера и в пределах формы

хотя ошибся это совсем не то что нужно

Последний раз редактировалось Stilet; 01.09.2014 в 08:01.
Alexandr17 вне форума Ответить с цитированием
Старый 01.09.2014, 08:05   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Ну кокто не привычно для меня привычние через API темболее уже делал только забыл как толи через LParam толи что не помню
Та ты мегакрут )
Даже я так не делаю.
Цитата:
темболее цель получить координаты курсора относительно формы а не другого объекта.
Функция ClientToParent() эту проблему решает.
Цитата:
хотя ошибся это совсем не то что нужно
Ну почему же? Это хорошее решение.
Только вот прикреплять этот обработчик тоже придется к каждому компоненту )
Это при том что в твоей Делфи должен уже быть обработчик OnMouseEnter и OnMouseLeave.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.09.2014, 09:11   #9
Alexandr17
Форумчанин
 
Регистрация: 10.12.2013
Сообщений: 227
По умолчанию

не обязательно оно работает и без прикреплений но оно только дает координыты когда мы с объекта на объкт заходим а нужно постоянно.
Alexandr17 вне форума Ответить с цитированием
Старый 01.09.2014, 09:36   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а нужно постоянно.
Опять возвращаемся к OnMouseMove )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести поточные координаты курсора мыши относительно формы и экрана, при нажатии на кнопку реверсивное изменение кнопок мыши C++ carrie bradshaw Помощь студентам 0 06.02.2014 00:21
прозрачность формы, при наведении мыши на кнопку реализовать изменение её положения относительно формы с невозможностью выхода за программирование Общие вопросы C/C++ 0 22.01.2014 22:31
координаты мыши относительно формы David Villa C++ Builder 3 19.04.2012 16:59
ПО для получения координат Иллидан Софт 2 07.07.2011 19:06
TСhart, клик мыши и координаты XY, Определение координат оси при клике мыши Aravild Компоненты Delphi 1 31.01.2009 16:28