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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.08.2013, 16:11   #1
Sasha_S
Пользователь
 
Регистрация: 28.04.2011
Сообщений: 16
По умолчанию Определить экранные координаты для узла TTreeView

Помогите, пожалуйста, программно получить координаты прямоугольника иконки состояния (StateIcon, загружается свойством StateImages) для заданного узла Node: TTreeNode.

Мне это нужно, чтобы сделать узлы TreeView с двумя чекбоксами. Чекбоксы добавляю через StateImages: при Node.StateIndex = 1 отображается картинка с галочкой, при Node.StateIndex = 2 - картинка без галочки. Теперь хочу сделать то же самое, но чтобы на картинках были сразу две галочки.

Чтобы определить, какой именно чекбокс выбран, нужно отловить нажатие мыши на левую и правую часть иконки. Как я понимаю, для этого надо сравнить координаты курсора с координатами прямоугольника иконки. Как их получить?

Что-то подобное делает функция TreeView.GetHitTestInfoAt(X, Y: Integer) - она возвращает, где именно сделан клик, на текст, на иконку и т.д., но мне нужно знать более подробно, какая часть иконки нажата.

Последний раз редактировалось Sasha_S; 31.08.2013 в 16:25.
Sasha_S вне форума Ответить с цитированием
Старый 01.09.2013, 21:47   #2
Sasha_S
Пользователь
 
Регистрация: 28.04.2011
Сообщений: 16
По умолчанию

Вопрос решен.
Код:
TTreeNode.DisplayRect(TextOnly: Boolean): TRect
- функция, которая при TextOnly = true возвращает координаты прямоугольника, содержащего текст узла дерева (для справок, при TextOnly = false будет вся строка, которую занимает узел). Между текстом узла и картинкой есть промежуток в 3 пустых пикселя. Таким образом, правая координата картинки - это Rect.Left - 4. Остальные координаты можно рассчитать, зная размер картинки.
Sasha_S вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Webbrowser. Определить координаты ссылки igrok111 Общие вопросы Delphi 2 13.07.2013 15:31
c# chart получить экранные координаты точки графика SU_B C# (си шарп) 0 05.05.2013 11:45
Вделение узла в TTreeView nikmay Общие вопросы Delphi 2 11.08.2009 17:02
как определить координаты курсора snaem Общие вопросы .NET 0 23.04.2008 22:27