Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.19;
Скачать: CL | DM;

Вниз

Мгновенный доступ к node, компонента ttreeview.   Найти похожие ветки 

 
Vacek ©   (2006-02-12 10:16) [0]

Компонент 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.


 
tesseract ©   (2006-02-12 12:20) [1]

А зачем ? Обычно используется свойство TreeView selected. Или создаётся дополнительный массив индексов.


 
Vacek ©   (2006-02-12 17:20) [2]

Свойство selected просто возвращает node, выделенный в дереве.

Дополнительный массив индексов.
Вот я и говорю, что зная индекс (, например, absoluteindex, в некоторых случаях хватит и index), я могу получить доступ к node, соответственно используя запись
treeview1.items.item[индекс]
,НО ТАК УСТРОЕНО ДЕРЕВО, ЧТО ДЛЯ ПОЛУЧЕНИЯ NODE ПО ИНДЕКСУ ПРОСМАТРИВАЕТСЯ КАЖДЫЙ NODE, НАЧИНАЯ С САМОГО ПЕРВОГО В ДЕРЕВЕ.
А дерево у меня огромное.
ВОЗМОЖНО, ЕСТЬ альтернативный способ получения доступа к node, который побыстрее? Может быть это hteeitem?


 
vovnuke ©   (2006-02-12 17:36) [3]

попробуй TreeView.Items.GetNode(ItemId: HTREEITEM);


 
Vacek ©   (2006-02-12 18:46) [4]

Спасибо всем.
Уже пробую. Может кто знает адресс сайта автора Марко Кенту книги "delph ? для профессионалов". Надеюсь у него в электронной книге есть подробности htreeitem.


 
Marser ©   (2006-02-12 18:54) [5]

> Может кто знает адресс сайта автора Марко Кенту

http://marcocantu.com/


 
vovnuke ©   (2006-02-12 18:57) [6]

Описание из дельфового хелпа:

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.


 
Vacek ©   (2006-02-12 20:39) [7]

Спасибо


 
evvcom ©   (2006-02-13 09:15) [8]


> Но в этом случае нужно будет перебрать node, начиная с первого
> node, и заканчивая конкретным node

Зачем? Непонятно. А что тебе мешает вызвать сразу node:=treeview1.Items.Item[3]; без цикла?



Страницы: 1 вся ветка

Текущий архив: 2006.03.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.043 c
15-1140774865
-=Dark=-
2006-02-24 12:54
2006.03.19
При запуске, Delphi ругаеться на rtl60.bpl! Как исправить?


2-1141250151
K_Lock
2006-03-02 00:55
2006.03.19
Вопрос для --> Ega23


2-1141375218
Creative
2006-03-03 11:40
2006.03.19
Как увидеть из одного юнита класс, описанный во втором


15-1140778468
paza
2006-02-24 13:54
2006.03.19
Нестандартные шрифты


9-1126037651
аматор
2005-09-07 00:14
2006.03.19
добавить персонаж