![]() |
TreeView in ini speichern...
Ich würde gern vermeiden mehrere Konfigurationsdateien für mein Programm zu erstellen, deshalb wäre es nicht schlecht, den Treeview auch mit in der ini zu sichern.
Mir fehlt momentan nur noch eine brauchbare Idee, wie ich einen Treeview in einer ini abbilden kann. |
Re: TreeView in ini speichern...
Wenns keine maximale zeilenlänge gibt in der ini könntest du das Treeview in einen Stream speichern und alle eingabetasten ersetzen. Alternativ zur Inidatei könntest du noch ein virtuelles dateisystem nehmen das in einer datei abgebildet ist oder eine zipdatei und dort deine daten reinpacken
|
Re: TreeView in ini speichern...
Zu einem TreeView würde doch eine XML-Datei perfekt passen!
mfG mirage228 |
Re: TreeView in ini speichern...
Zitat:
Ich habe es jetzt gelöst ;)
Delphi-Quellcode:
procedure TreeToIni(Tree: TTreeView; INI: TIniFile; Section: string);
var n: integer; MS: TMemoryStream; tTv: TStringList; Msg: string; begin tTv := TStringList.Create; MS := TMemoryStream.Create; try Tree.SaveToStream(MS); MS.Position := 0; tTv.LoadFromStream(MS); INI.EraseSection(Section); for n := 0 to tTv.Count - 1 do INI.WriteString(Section, 'Node' + IntToStr(n), StringReplace(tTv[n], #9, '#', [rfReplaceAll])); finally tTv.Free; MS.Free; end; end; procedure TreeFromIni(Tree: TTreeView; INI: TIniFile; Section: string; Expand: boolean); var n: integer; MS: TMemoryStream; tTv: TStringList; Msg: string; begin tTv := 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 Tree.Items[0].Expand(True); finally tTv.Free; MS.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz