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

Вниз

переход по узлам в TreeView - какие-то заморочки   Найти похожие ветки 

 
malamba   (2005-03-06 12:46) [0]

Есть дерево со вложенными узлами.
Когда пользуюсь методом GetNext ( причем, все согласно примеру из Delphi) это гадство переходит только по открытым узлам. Если у узла есть дети, но они скрыты ( узел не развернут), то GetNext их обходит стороной.
Как бы организовать переход по все узлам, независимо от их раскрытия?
Методом If ...Items[i]= ..., сразу скажу - не пользуюсь.


 
MU ©   (2005-03-06 12:49) [1]

покажите код


 
Ольга   (2005-03-06 14:59) [2]

for i:=0 to TreeView.Items.Count-1


 
malamba   (2005-03-06 18:17) [3]

Ольга, только не это.
На больших списках это жутко тормозит.

Показываю:
tmpNod := MyTreeView.GetFirstNode;
Searching := true;
while (Searching) and (tmpNod <> nil) do
begin
 if tmpNod.text = SearchTarget then
 begin
   Searching := False;
   MyTreeView.Selected := tmpNod;
   MyTreeView.SetFocus;
 end
 else
 begin
   tmpNod := tmpNod.GetNext
 end;
end;


 
MU ©   (2005-03-06 18:32) [4]

что-то подозрительный код
кто такой MyTreeView?
если это TTreeView, то у него не  MyTreeView.GetFirstNode;
а есть
 MyTreeView.Items.GetFirstNode;


 
malamba   (2005-03-06 19:04) [5]

MyTreeView.Items.GetFirstNode;

Разумеется, Items - я писал по памяти. Главное - смысл: получаю первый узел, а затем каждый последующий проверяю на соотвествие.
Но GetNext и не проходит.


 
MU ©   (2005-03-06 21:16) [6]

у меня (D6) ваш код рааботает


 
malamba   (2005-03-07 15:39) [7]

М-м-м, странно.
То есть у Вас несколько узлов уровня 0, у каждого узла 0 - по нескольку узлов уровня 1, и так несколько раз.
И при закрытых узлах уровня 0 GetNext переходит по всем без исключения узлам, независимо от уровня?

Тогда какие настройки treeView ?


 
MU ©   (2005-03-07 15:47) [8]

выложите кусок из DFM (TreeView) весь


 
malamba   (2005-03-07 16:05) [9]

Гм, получится разве что в среду - он остался на работе, а домашняя копия старая.

Если не удасться нарыть это сообщени, пущу новое.
А может быть сразу в мыло, поскольку в этой теме остались только я да Вы.


 
ShimON ©   (2005-03-07 16:10) [10]

И люди, которые за ней следят...


 
MU ©   (2005-03-07 16:39) [11]

возьмите новый проект с TreeView и проверьте
или свой старый.


 
malamba   (2005-03-07 17:04) [12]

Виноват, тогда сюда и только сюда.
До среды.


 
malamba   (2005-03-14 10:11) [13]

Виноват, задержался.
Возвращаясь к напечатанному:

Выкладываю DFM
     object TreeViewZayavky: TTreeView
       Left = 0
       Top = 5
       Width = 276
       Height = 381
       Color = 15268607
       Font.Charset = DEFAULT_CHARSET
       Font.Color = clNavy
       Font.Height = -11
       Font.Name = "MS Sans Serif"
       Font.Style = []
       HideSelection = False
       Images = ImageListTree
       Indent = 19
       ParentFont = False
       ReadOnly = True
       TabOrder = 0
       OnClick = TreeViewZayavkyClick
       OnCustomDrawItem = TreeViewZayavkyCustomDrawItem
       OnEnter = TreeViewZayavkyClick
       OnExpanding = TreeViewZayavkyExpanding
       OnKeyUp = TreeViewZayavkyKeyUp
     end


 
ЮЮ ©   (2005-03-15 04:18) [14]

>Ольга, только не это.
>На больших списках это жутко тормозит.

Удивительно, как TTreeNode.GetNext c дюжиной строк кода может ускорить этот процесс, если последовательнось обхода узовлов аналогична той, что и в
 for i := 0 to TreeView.Items.Count - 1


 
malamba   (2005-03-15 10:39) [15]

GetNext это вовсе не то, что Items[i]=.

Во всяком случае так говорят в Инете:
http://delphiworld.by.ru/base/treeview_nodes_access.html



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

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

Наверх




Память: 0.5 MB
Время: 0.028 c
1-1110910067
heady
2005-03-15 21:07
2005.03.27
Строка и маска


14-1109173559
Piter
2005-02-23 18:45
2005.03.27
TimeZero


1-1110723546
Макс Т.
2005-03-13 17:19
2005.03.27
Выравнивание заголовка


6-1106804544
ТехникПТО
2005-01-27 08:42
2005.03.27
Создание TWebBrowser


9-1103463963
Dic
2004-12-19 16:46
2005.03.27
PowerDraw3 vs Asphyre.