Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TreeView [D6, WinXP]


suharew ©   (2004-09-12 22:09:00) 

Есть treeview, как осушествить в нем поиск?  У меня там находятся много веток(большая структура). Найти элемент мне удается а как сделать что бы он соответствующую ветку раскрыл с указанием искомого элемента ?????


MetalFan   (2004-09-13 13:10:00) [1]

юзай VirtualTreeView!!! при больших объемах летает!!!


Drakosha   (2004-09-13 12:49:00) [2]

ну просто делфы под рукой нет ... идею помню ну а с реализацией чуток запамятовал

проху сильно не бить :))


evvcom   (2004-09-13 11:44:00) [3]


> var CurNode:TTreeViewNode;
> begin
> CurNode:=Tree.getfirstnode//точно не помню
> ...
> curnode.selected;

var CurNode: TTreeNode;
begin
 CurNode := TreeView.Items.GetFirstNode;
 ...
 CurNode.Selected := True;


Drakosha   (2004-09-13 11:06:00) [4]


var CurNode:TTreeViewNode;
begin
CurNode:=Tree.getfirstnode//точно не помню
while curnode<>nil do
begin
if curnode есть нужный then
 begin  
   curnode.selected;
   break;
 end;
 curnode:=curnode.getnext;
end;


во как :)


NAlexey   (2004-09-13 09:02:00) [5]

>suharew   (12.09.04 23:43) [2]
Если у тебя ветки содержат большое количество потомков, то я бы не советовал обращаться к нодам по индексу. Слишком медленно будет.


suharew   (2004-09-12 23:43:00) [6]

К сожаления это не работает или я что-то не так сделал.
НО !!!
Есть другой вариант:
 
   Treeview1.Selected:=Treeview1.Items[i];
   Treeview1.SetFocus;

а так как я елемент нашел то i - это известный его порядковый номер.


Sheng   (2004-09-12 23:24:00) [7]

Ну, если найти удаётся (я так понял, что это TTreeNode), то тогда попробуй так: пусть Node: TTreeNode найденный элемент, тогда Node.Collapse(False {или True, это как надо будет}) или Node.Parent.Collapse(False). Не проверял, но по идее должно работать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо