Hallo,
habs dann doch noch gelöst.
Zitat:
(Manchmal sieht man die Bäume vor lauter Wald nicht mehr).
Geht bestimmt noch professioneller aber, hauptsache schnellund funktioniert.
Ich denke, im Forum wurde diese Herausforderung öfters formuliert. Von daher werden sich einige über die Lösung freuen.
Im Übrigen, das Laden des Trees ist wirklich super schnell.
Tom
Hier die Ergänzung, die ich glatt vergessen habe.
Delphi-Quellcode:
procedure TQueryForm.TreeFromIni(Tree: TTreeView; INI: TIniFile; Section: string;
Expand: boolean);
var
n: integer;
MS: TMemoryStream;
tTv: TStringList;
tTDat: TStringList;
id :Pstring;
node :TTReeNode;
feld :string;
begin
tTv := TStringList.Create;
tTDat := TStringList.Create;
MS := TMemoryStream.Create;
try
INI.ReadSection(Section, tTv);
for n := 0 to tTv.Count - 1 do
tTv[n] := StringReplace(INI.ReadString(Section, tTv[n], ''), '#', #9,
[rfReplaceAll]);
tTv.SaveToStream(MS);
MS.Position := 0;
Tree.LoadFromStream(MS);
if (Expand = True) and (Tree.Items.Count > 0) then
begin
Tree.Items[0].Expand(True);
Tree.Items[0].MakeVisible;
end;
INI.ReadSection(Section+'_Data', tTDat);
for n := 0 to tTDat.Count - 1 do
begin
Tree.Select(Tree.Items[n]);
node := Tree.Selected;
feld := tTDat.Strings[n];
feld := INI.ReadString(Section+'_Data', feld, '');
new(id);
id^ := feld;
node.Data :=id;
end;
finally
tTv.Free;
tTDat.Free;
MS.Free;
end;
end;
[edit=alcaeus]Wieder Delphi-Tags korrigiert. Zu jedem oeffnenden Tag gehoert auch ein schliessendes Mfg, alcaeus[/edit]