Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.09;
Скачать: CL | DM;

Вниз

Сохранение содержимого TreeView   Найти похожие ветки 

 
ILPU   (2008-03-07 08:24) [0]

Как сохранить содержимое TreeView в файл и
обратно загрузить?


 
Dimaxx ©   (2008-03-07 10:35) [1]

Никак. Писать самому сохранение...


 
ILPU ©   (2008-03-11 17:27) [2]

Можно использовать For i := 1 to MYTreeView.Count do begin а вот как дальше?
Идеи есть у кого?


 
ILPU ©   (2008-03-11 17:27) [3]

Можно использовать For i := 1 to MYTreeView.Count do begin а вот как дальше?
Идеи есть у кого?


 
Дмитрий К ©   (2008-03-11 17:52) [4]

Цитата:

Slay  (24.01.05 11:28)  [8]

Вот пример сохранения и загрузки данных TreeView. У меня работает.

//Сохранение TreeView в файл (Base.dat)

function Save2File(Sender:TKOLTreeView): Boolean;
var
F: HFile;

procedure item2file(ind:cardinal);
var
len:cardinal;
path: String;
begin
while ind<>0 do
begin
 path := sender.TVItemPath(ind,"\");
 len :=length(path) ;
 FileWrite( F, len,4);
 FileWrite( F, path[1], len );
 if Sender.TVItemChild[ind]<>0 then item2file(Sender.TVItemChild[ind]);
 ind := sender.TVItemNext[ind];
end;
end;

begin
result := false;
F := FileCreate("Base.dat", ofOpenWrite or ofCreateAlways);// or ofShareExclusive ofShareDenyRead or ofShareDenyWrite
if F = INVALID_HANDLE_VALUE then Exit;

item2file(Sender.TVRoot);

FileClose( F );
result := true;
end;

//Загрузка из файла(Base.dat) в TreeView

function LoadFromFile(Sender:TKOLTreeView): Boolean;
var
 len,ind : cardinal;
 F : HFile;
 Path: String;

function IndPath:cardinal;
var
 tmpPath,tmpText: String;
begin
tmpPath := ExtractFilePath(Path);
result := Sender.TVRoot;
tmpText := parse(tmpPath,"\");
while result<>0 do
if sender.TVItemText[result] = tmpText then
begin
 if length(tmpPath)=0 then exit;
 result:= sender.TVItemChild[result];
 tmpText := parse(tmpPath,"\");
end else result:= sender.TVItemNext[result];
end;

begin
result := false;
F := FileCreate("Base.dat", ofOpenRead or ofOpenExisting);//  or ofShareExclusive
if F = INVALID_HANDLE_VALUE then Exit;
Sender.BeginUpdate;
while FileRead(F,len,4)<>c0 do
begin
 SetLength(Path,len);
 FileRead(F,Path[1],len);
 ind := IndPath;
 Sender.TVInsert(ind,TVI_SORT,ExtractFileName(path))
end;
Sender.EndUpdate;
FileClose( F );
result := true;
end;

Конец цитаты.


 
ILPU ©   (2008-03-12 08:58) [5]

Большое спасибо!



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

Текущий архив: 2009.08.09;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
11-1205307227
zhirik
2008-03-12 10:33
2009.08.09
Как перетаскивать форму за ее поверхность


2-1245012972
HRustBB
2009-06-15 00:56
2009.08.09
Сохранить текстовый файл в UTF-8


15-1244550120
Dmk
2009-06-09 16:22
2009.08.09
Появилась вторая сеть


15-1244483958
User200902
2009-06-08 21:59
2009.08.09
Поиск лишних гиф и jpg


1-1211868140
TForumHelp
2008-05-27 10:02
2009.08.09
ДвуХсторонняя печать...