Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.01.2013, 15:49   #1
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
Сообщение VirtualStringTree. Найти узел с указанными данными.

Доброго времени суток!

Каждому узлу передается некоторая структура:
Код:
type
  TMyNodeRec = ...
   ID:CARDINAL:
   ...
   end;
Как найти узел у которого в ^TMyNodeRec.ID есть искомое число?
Человек_Борща вне форума Ответить с цитированием
Старый 05.01.2013, 16:34   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Перебор узлов с самого начала с проверкой условия не подходит?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 05.01.2013, 16:53   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Перебор узлов с самого начала с проверкой условия не подходит?
Очень даже. НО, как обратиться к Child-узлу?
Код:
for i:=0 to VST.RootNode.ChildCount -1 do
 begin
    //Что дальше-то? 
 end;
Есть внятная документация по Virtual TreeView? В оф. я не нашел как обращаться к дочерним узлам...
Человек_Борща вне форума Ответить с цитированием
Старый 05.01.2013, 17:22   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Здесь есть пример рекурсивного перебора всех узлов
http://delphigears.blogspot.com/2011...-treeview.html
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.01.2013, 09:06   #5
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ребят, я конечно дико извиняюсь, но чем не устраивает метод GetNext? Просто давно работаю с этим компонентом и данную задачу решаю именно через него. Код типа приведенного ниже прекрасно работает
Код:
for i := 0 to VT1.TotalCount - 1 do
begin
    Node := VT1.GetNext(Node);
   ................
end;
Баламут вне форума Ответить с цитированием
Старый 07.01.2013, 13:18   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Баламут, Мне устроит все если я научусь им пользоваться. Да вот нет внятной документации, только дохлый выкидышь Doc-o-Matic в котором дико сложно ориентироваться.
Человек_Борща вне форума Ответить с цитированием
Старый 07.01.2013, 15:24   #7
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Да всегда рад помочь. Предыдущий мой пост помог или что-то не понятно? Ясен пень, что полный талмуд по этому компоненту не выложишь. Я и сам не все знаю. Будем вместе разбираться
Баламут вне форума Ответить с цитированием
Старый 07.01.2013, 17:40   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
for i := 0 to VT1.TotalCount - 1 do
begin
    Node := VT1.GetNext(Node);
Я не понимаю как проходит итерация, где используется переменная i?

Код:
var
 Node:PVirtualNode;
 i:Integer;
begin
 Node:=VST.RootNode;
 for i:=0 to VST.TotalCount -1 do
 begin
  Node:=VST.GetNext(Node) 
 end;
end;
Так?
Человек_Борща вне форума Ответить с цитированием
Старый 07.01.2013, 18:08   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А так?
Код:
Node:=VST.RootNode;
while Node<>nil do begin
  ...
  Node:=VST.GetNext(Node) 
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
virtualstringtree shturman1387 Компоненты Delphi 2 20.12.2012 20:34
Поиск элементов с указанными свойствами danilchican Паскаль, Turbo Pascal, PascalABC.NET 3 06.12.2011 18:15
Решение СНЛ указанными методами (Pascal) manbo Помощь студентам 0 29.11.2011 20:06
Обновление VirtualStringTree по таймеру woofer Помощь студентам 1 22.05.2010 02:55
VirtualStringTree чужого окна akaTemporary Общие вопросы Delphi 0 29.01.2010 14:32