Главная страница
    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.037 c
3-1109500901
xman
2005-02-27 13:41
2005.03.27
Создание схемы в базе ORACLE


14-1109773013
RDA
2005-03-02 17:16
2005.03.27
Закончились уникальные MAC адреса для сетевух?


1-1110719969
Victor08
2005-03-13 16:19
2005.03.27
Маска целых чисел


6-1105609202
Studentas
2005-01-13 12:40
2005.03.27
physical adress cетевухи?


1-1110863289
smok_red
2005-03-15 08:08
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский