Главная страница
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.029 c
1-1111001345
Sphinx
2005-03-16 22:29
2005.03.27
Пример работы с ZLib


3-1109546867
Fedia
2005-02-28 02:27
2005.03.27
Объединение данных из двух таблиц одним запросом


1-1110951712
ser35
2005-03-16 08:41
2005.03.27
Диапазон печати в QuickReport


1-1110433767
Alexandr3
2005-03-10 08:49
2005.03.27
AccessViolation непонятно с чего


1-1110979999
Alex_C
2005-03-16 16:33
2005.03.27
Не могу создать в RealTime TRxGIFAnimator