Hallo Tom,
die von dir gefundene Methode dient nur zum speichern einer äqivalenten Textdarstellung der Knotenbeschriftungen. Um da noch einen Integer-Wert aus TreeNode.Data dran zu hängen musst du doch wieder eine Schleife über alle Knoten laufen lassen und ein eigenes Zeilenformat erzeugen.
Delphi-Quellcode:
procedure TreeSave(tv: TTreeView; ini: TInifile; section: string);
const
SEP = '#';
var
i: integer;
tn: TTreeNode;
begin
tn := tv.Items.GetFirstNode;
ini.EraseSection(section);
while Assigned(tn) do begin
ini.WriteString(section,
IntToStr(tn.AbsoluteIndex),
IntToStr(Integer(tn.Data)) + SEP + IntToStr(tn.Level) + SEP + tn.Text
);
tn := tn.GetNext;
end;
end;
Oder du speicherst die Zahlenwerte aus TTreeNode.Data in einem eigenen Abschnitt der INI-Datei und fügst die Werte deinen Knoten später wieder hinzu:
Delphi-Quellcode:
procedure TreeDataSave(tv: TTreeView; ini: TInifile; section: string);
var
i: integer;
tn: TTreeNode;
begin
tn := tv.Items.GetFirstNode;
ini.EraseSection(section);
while Assigned(tn) do begin
ini.WriteString(section,
'Node' + IntToStr(tn.AbsoluteIndex),
IntToStr(Integer(tn.Data))
);
tn := tn.GetNext;
end;
end;
Grüße vom marabu