Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить координаты TreeNode в TreeView, программно 
V
    Опции темы
DSan
Дата 18.5.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.2.2007

Репутация: нет
Всего: нет



Необходимо получить координаты TreeNode в TreeView.
Есть стандартная функция GetNodeAt, которая получает в качестве аргументов значения координат X, Y и возвращает TreeNode в дереве с этими координатами. Нужна обратная функция, которая по TreeNode-у будет возвращать его координаты.

Какие будут соображения?
PM   Вверх
Rrader
  Дата 18.5.2008, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Inspired =)
***


Профиль
Группа: Экс. модератор
Сообщений: 1535
Регистрация: 7.5.2005

Репутация: 70
Всего: 191



Код

Procedure TForm1.Button1Click(Sender: TObject);
Var
  R: TRect;
Begin
  HTreeItem(Pointer(@R)^) := TreeView1.Items[0].ItemId;
  TreeView1.Perform(TVM_GETITEMRECT, 1, Longint(@R));
  // Демонстрация
  TreeView1.Canvas.Brush.Color := clBlack;
  TreeView1.Canvas.FillRect(R);
  ShowMessage(TreeView1.GetNodeAt(R.Right - R.Left - 1,
    R.Bottom - R.Top - 1).Text);
End;

Если в параметре WParam передать 0 вместо 1, то получим прямоугольник координат всей строки. А так только прямоугольник текстовой части smile

Добавлено через 1 минуту и 16 секунд
Не забываем
Код

Uses CommCtrl;



--------------------
Let's do this quickly!
Rest in peace, Vit!
PM MAIL Skype   Вверх
Beltar
Дата 18.5.2008, 21:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 627
Регистрация: 11.1.2006

Репутация: 3
Всего: 7



Можно его очерчивающий прямоуольник получить, я так рисовал поверх иконки узла.


--------------------
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. smile(с) я, хотя может и нет
Пищущий на C++ мужик. Даже если это мужик сидит в написанном на Delphi и жрущем паскалевскую библиотеку билдере.
PM MAIL   Вверх
DSan
Дата 18.5.2008, 23:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 10.2.2007

Репутация: нет
Всего: нет



Большое спасибо, работает.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0408 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.