![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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). Не проверял, но по идее должно работать.