Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Treviw in Ini incl. DataEigenschaft sichern

  Alt 12. Jun 2005, 09:39
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
  Mit Zitat antworten Zitat