Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.27;
Скачать: [xml.tar.bz2];

Вниз

переход по узлам в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.063 c
3-1109232078
Топпер
2005-02-24 11:01
2005.03.27
Log FireBird1.5 SS под Linux


9-1104546897
Xerx
2005-01-01 05:34
2005.03.27
OpenGL и вывод текста GDI


1-1110828527
Гость
2005-03-14 22:28
2005.03.27
Подскажите, как вставить данные из формы в Word?


1-1110612969
Evgenos
2005-03-12 10:36
2005.03.27
ListBox.Color проблема


1-1110529519
VZup
2005-03-11 11:25
2005.03.27
Цвет под указателем мыши





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский