Einzelnen Beitrag anzeigen

waldforest

Registriert seit: 8. Mai 2005
366 Beiträge
 
Delphi XE3 Enterprise
 
#6

Re: Treviw in Ini incl. DataEigenschaft sichern

  Alt 12. Jun 2005, 11:59
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]
  Mit Zitat antworten Zitat