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

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

SaveToStream [D5, WinXP]


CyberS ©   (2004-07-10 13:17:00) 

Как сохранять treeview через savetostream и загружать?


Mim1   (2004-07-10 14:30:00) [1]

ааа, вы  про это, а почему вы тогда в раздел компоненты пишите?

procedure TForm1.Button1Click(Sender: TObject);
var fs:tstream;
begin
 fs := tfilestream.Create('c:\123.dat',fmcreate);
 try
   TreeView1.SaveToStream(fs);
 finally
   fs.Free;
 end;
end;


Mim1   (2004-07-10 14:30:00) [2]


> а почему вы тогда в раздел компоненты пишите?

Ой, извините, ошибся.


CyberS   (2004-07-10 14:12:00) [3]

А как пользоваться savetostream и loadtostream в treeview?


Mim1   (2004-07-10 13:43:00) [4]

Из vcl

procedure TTreeNodes.ReadData(Stream: TStream);
var
 I, Count: Integer;
 NodeInfo: TNodeInfo;
 LNode: TTreeNode;
 LHandleAllocated: Boolean;
begin
 LHandleAllocated := Owner.HandleAllocated;
 if LHandleAllocated then
   BeginUpdate;
 FReading := True;
 try
   Clear;
   Stream.ReadBuffer(Count, SizeOf(Count));
   for I := 0 to Count - 1 do
   begin
     LNode := Add(nil, '');
     LNode.ReadData(Stream, @NodeInfo);
     Owner.Added(LNode);
   end;
 finally
   FReading := False;
   if LHandleAllocated then
     EndUpdate;
 end;
end;

procedure TTreeNodes.WriteData(Stream: TStream);
var
 I: Integer;
 Node: TTreeNode;
 NodeInfo: TNodeInfo;
begin
 I := 0;
 Node := GetFirstNode;
 while Node <> nil do
 begin
   Inc(I);
   Node := Node.GetNextSibling;
 end;
 Stream.WriteBuffer(I, SizeOf(I));
 Node := GetFirstNode;
 while Node <> nil do
 begin
   Node.WriteData(Stream, @NodeInfo);
   Node := Node.GetNextSibling;
 end;
end;


Наверх

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