![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мгновенный доступ к node, компонента ttreeview. [D5]
Vacek © (2006-02-12 10:16:00)Компонент ttreeview. Работая с node можно получить доступ к конкретному node по его, например, absoluteindex.
Но в этом случае нужно будет перебрать node, начиная с первого node, и заканчивая конкретным node, например,
вот так:
procedure TForm1.FormCreate(Sender: TObject);
var r1,r2:integer;
node:ttreenode;
begin
r2:=3;
for r1:=0 to r2 do
node:=treeview1.Items.Item[r1];
form1.Caption:=node.text;
end;
Пусть имя компонента ttreeview будет treeview1 и
absoluteindex=3;
Проблема в том, что при достаточно огромном количестве node. Перебор каждого node существенно замедлит работу
программы. Вопрос: есть ли возможность у компонента ttreeview найти нужный node мгновенно?
Пишу на delphi5.
evvcom (2006-02-13 09:15:00) [1]
> Но в этом случае нужно будет перебрать node, начиная с первого
> node, и заканчивая конкретным node
Зачем? Непонятно. А что тебе мешает вызвать сразу node:=treeview1.Items.Item[3]; без цикла?
Vacek (2006-02-12 20:39:00) [2]Спасибо
vovnuke (2006-02-12 18:57:00) [3]Описание из дельфового хелпа:
Contains a handle that uniquely identifies each node in a tree view.
Delphi syntax:
property ItemId: HTreeItem;
Description
Use this property to reference the nodes when making Windows API calls or calling the GetNode method of the TTreeNodes that owns the item.
Marser (2006-02-12 18:54:00) [4]> Может кто знает адресс сайта автора Марко Кенту
http://marcocantu.com/
Vacek (2006-02-12 18:46:00) [5]Спасибо всем.
Уже пробую. Может кто знает адресс сайта автора Марко Кенту книги 'delph ? для профессионалов'. Надеюсь у него в электронной книге есть подробности htreeitem.
vovnuke (2006-02-12 17:36:00) [6]попробуй TreeView.Items.GetNode(ItemId: HTREEITEM);
Vacek (2006-02-12 17:20:00) [7]Свойство selected просто возвращает node, выделенный в дереве.
Дополнительный массив индексов.
Вот я и говорю, что зная индекс (, например, absoluteindex, в некоторых случаях хватит и index), я могу получить доступ к node, соответственно используя запись
treeview1.items.item[индекс]
,НО ТАК УСТРОЕНО ДЕРЕВО, ЧТО ДЛЯ ПОЛУЧЕНИЯ NODE ПО ИНДЕКСУ ПРОСМАТРИВАЕТСЯ КАЖДЫЙ NODE, НАЧИНАЯ С САМОГО ПЕРВОГО В ДЕРЕВЕ.
А дерево у меня огромное.
ВОЗМОЖНО, ЕСТЬ альтернативный способ получения доступа к node, который побыстрее? Может быть это hteeitem?
tesseract (2006-02-12 12:20:00) [8]А зачем ? Обычно используется свойство TreeView selected. Или создаётся дополнительный массив индексов.