powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / узнать имя контрола который расположен по заданным координатам
5 сообщений из 5, страница 1 из 1
узнать имя контрола который расположен по заданным координатам
    #39723659
Фотография garun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на форме расположена панель (pnlContainer), внутри этой панели еще несколько динамически созданных панелей одинаковой высоты и ширины расположенные одна над другой со свойством Align = alTop.
нужно при наведении мыши на одну из панелей узнать имя панели расположенной над ней. для этого решил действовать так:
1) узнать координаты панели над которой находится курсор
2) сместить координаты на несколько пикселей вверх и получить имя панели в этих координатах

на событие OnMouserEnter каждой панели вешаю это:
Код:
Код: pascal
1.
2.
3.
4.
5.
6.
7.
var
 P1: TPoint;
begin
  P1 := (Sender as TPanel).ClientToParent(Point(0, 0)); //получаем координаты панели над которой курсор
  if pnlContainer.ControlAtPos(Point(P1.X, P1.Y-5), False) = nil //получаем панель находящуюся на 5 пикселей выше
  then lbl1.Caption:= 'nil'
  else lbl1.Caption:= pnlContainer.ControlAtPos(Point(P1.X, P1.Y-5), False).Name; //выводим имя панели


но всегда почему-то возвращается nil . не могу понять в чем дело, подскажите что не так?
...
Рейтинг: 0 / 0
узнать имя контрола который расположен по заданным координатам
    #39723668
Фотография garun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для наглядности задачи)

...
Рейтинг: 0 / 0
узнать имя контрола который расположен по заданным координатам
    #39723674
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
garunдля этого решил действовать так

Это не совсем правильный подход. Гораздо надёжнее пройти по списку Controls pnlContainer-а
и найти тот, у которого Top меньше, чем у данной панели, но максимален.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
узнать имя контрола который расположен по заданным координатам
    #39723696
Фотография garun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakovgarunдля этого решил действовать так

Это не совсем правильный подход. Гораздо надёжнее пройти по списку Controls pnlContainer-а
и найти тот, у которого Top меньше, чем у данной панели, но максимален.


пожалуй, вы правы. так и сделал.
но теперь хотя бы ради интереса хотелось бы узнать почему приведенный код не работает
...
Рейтинг: 0 / 0
узнать имя контрола который расположен по заданным координатам
    #39723823
Cobalt747
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
garun,

Отладка тебе поможет раскрыть этот секрет!
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / узнать имя контрола который расположен по заданным координатам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]