Вниз
Скачать: CL | DM;

TTreeView - сохранение в файл   Найти похожие ветки 

 
k@rt ©   (2005-01-29 23:14) [0]

У меня в TTreeView у каждого TTreeNode Data указывает на запись неопределнного размера. Как всю эту древовидную структуру с Data сохранять в файл и загружать из файла? Надо, чтобы не сильно тормозно сохранение и загрузка работала.
Кто что подсказать может?


 
Defunct ©   (2005-01-29 23:23) [1]

никак.

переделывайте структуру. в Node.Data храните указатель на объект с полями данных неопределенного размера и с методами записи в файл/stream.


 
K@rt ©   (2005-01-29 23:28) [2]

А как лучше сделать сохранение, чтобы потом древовидную структуру загрузить? Чтобы это не очень медленно работало при большом кол-ве TTreeNode.


 
Defunct ©   (2005-01-29 23:34) [3]

лучше чтобы ваш класс поддерживал древовидную структуру например так:

TMyDataStruct = class
private
 ... поля данных

public
 property Items[index: integer]:TMyDataStruct read ... write ..
 property Parent: TMyDataStrcut;
 property TreeNode: TTreeNode

 procedure Save(Stream: TStream):virtual;
 procedure Load(Stream: TStream):virtual;
 ..
end;

Parent это будет родетельский узел.
Items - список узлов, прикрепленных к данному.


 
Defunct ©   (2005-01-29 23:39) [4]

Save/Load делаете примерно так:

propcedure TMyDataStruct.Save;
var
 i : integer;
begin
 try
   Stream.Write( поля данных );
   for i := 0 to Count - 1 do
       Items[i].Save(Stream)
 except
   < обработка ошибок записи >
 end
end;

procedure TMyDataStruct.Load;
var
 i : integer;
begin
 try
   Stream.Read( поля данных );
   // тут кол-во прикрепленных узлов уже прочитано
   for i := 0 to Count - 1 do
   begin
     Items[i] := TMyDataStruct.Create;
     Items[i].Load(Stream)
   end
 except
   < обработка исключений загрузки >
 end
   
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.031 c
14-1106750227
Гамлет
2005-01-26 17:37
2005.02.13
Где можно посмотреть исходники интернет-магазина?


3-1105462296
Влад
2005-01-11 19:51
2005.02.13
Настройка FB сервера


14-1106241672
Denis_
2005-01-20 20:21
2005.02.13
WIndows Xp ,NTFS


14-1106301757
07BB:080Dh
2005-01-21 13:02
2005.02.13
Java


6-1101471915
Vikky
2004-11-26 15:25
2005.02.13
Компонент для работы с SMTP и POP




   Наверх