Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как сохранить Items в TreeView [D7, WinXP]


apl ©   (2006-09-06 13:02:00) 

Подскажите! Есть TreeView отображающий данные из базы данных. Каждый узел дерева содержит объект (TreeNode.Data)
Объекты следующие

type
 TListPrivilege = class(TObject)
   Caption : String;
   kodid : integer;
 private
 public
   constructor Create; virtual;
   ...
 end;

type
 TDefPrivilege = class(TListPrivilege)
   Notes : WideString;
   PersCnt : Longint;
 private
 public
   constructor Create; override;
   ...
 end;


Заполняется дерево как обычно.


var
vk,vks : TTreeNode;
dp,dps : TDefPrivilege;

begin  
 ...
 dp:=TDefPrivilege.Create;
 ....
 vk:=TreeView1.Items.AddObject(nil,dp.GetCaption,dp);
 ...
 dps:=TDefPrivilege.Create;
 ...
 vks:=TreeView1.Items.AddChildObject(vk,dps.GetCaption,dps);
end;


Вся проблема в том, что в этот TreeView заталкивается очень большой справочник нескольких уровней вложенности. Справочник практически не изменяется. Заполняется достаточно заметное время, т.к. приходится выполнять много запросов к базе для каждого узла для каждого уровня вложенности. Попробовал считать весь справочник одним запросом и «ковыряться» в наборе - быстрее, но не особо существенно. Хотел сохранить сформированное дерево в виде файла на диске (SaveToStream (?)), но сохранились только названия из узлов.
Как можно сохранить и объекты из всех узлов для восстановления в последстивии.


PSPF2003   (2006-09-06 13:18:00) [1]

Могу пример БД-шный дать.


PSPF2003   (2006-09-06 13:16:00) [2]


> Как можно сохранить и объекты из всех узлов для восстановления
> в последстивии.

Я сохранил все в XML, а потом загружал.


Наверх

Титульная страница Поиск, карта сайта Написать письмо