![]() |
VirtualTreeView Layout und Werte in INI speichern
Hallo DPler,
ich überlege gerade, wie ich das Aussehen (also die Anordnung und Breite der Columns) und die einzelnen Zeilen sinnvoll in einer INI speichern kann. Grund: Alle Programmeinstellungen der GUI werden in einer (Unicode) INI gespeichert. Bei den Zeilen wäre es ja möglich etwas in folgender Richtung zu machen:
Delphi-Quellcode:
Nur mal ganz abstrakt. Ich habe schon etwas rumgesucht und gegoogelt - nur ne halbe Stunde/Stunde.
[Datasets]
SetCount=7 Set1="234234","adfasf","asfasdf" Set2...Set7 Gibt es da schon was fertiges? Auf Mikes Seite ist zwar ein INI Descendant, aber der ist hierfür vollkommen ungeeignet, da er Wertepaare horizontal auflistet, ich aber eine vertikale Anordnung der unterschiedlichen Werte habe. Zusätzlich behandelt dieser auch das Layout speichern nicht. Und VST.LoadFrom/SaveToFile kenne ich, aber das ist etwas zu Binär ;) Gruß winkel79 |
Re: VirtualTreeView Layout und Werte in INI speichern
|
Re: VirtualTreeView Layout und Werte in INI speichern
Hallo Marcus,
Zitat:
Vielen Dank für die Beispiele. Ich habe Sie für mich noch etwas abgewandelt, so daß die Positionen der Spalten mitgespeichert werden. Wer es gebrauchen kann:
Delphi-Quellcode:
Vorher natürlich Grid und AIni zuweisen. Bei Bedarf TTntMemIni durch TMemIni o.ä. ersetzen. Ist ja nur ein Unicode Handler.
procedure SaveGrid(AIniFile: TTntMemIniFile; ATreeView: TVirtualStringTree;
GridName: WideString); var iColNr : integer; begin if Assigned(AIniFile) and Assigned(ATreeView) and (ATreeView.Header.Columns.Count > 0) then with AIniFile do for iColNr := 0 to ATreeview.Header.Columns.Count-1 do begin AIniFile.WriteInteger(GridName, 'ColWidth'+IntToStr(iColNr), ATreeView.Header.Columns[iColNr].Width); AIniFile.WriteInteger(GridName, 'Position'+IntToStr(iColNr), ATreeView.Header.Columns[iColNr].Position); end; end; procedure LoadGrid(AIniFile: TTntMemIniFile; ATreeView: TVirtualStringTree; GridName: WideString); var iColNr : integer; begin if Assigned(AIniFile) and Assigned(ATreeView) then with AIniFile do for iColNr := 0 to ATreeview.Header.Columns.Count-1 do begin ATreeView.Header.Columns[iColNr].Width := AIniFile.ReadInteger( GridName, 'ColWidth'+IntToStr(iColNr), ATreeView.Header.Columns[iColNr].Width); ATreeView.Header.Columns[iColNr].Position := AIniFile.ReadInteger( GridName, 'Position'+IntToStr(iColNr), ATreeView.Header.Columns[iColNr].Position); end; end; Jetzt fehlt nur noch das Lesen/Speichern der Nodes in INIs - Hat da auch schon wer etwas "erfunden"? Gruß winkel79 |
Re: VirtualTreeView Layout und Werte in INI speichern
entweder du nutzt die nativen methoden.
oder du machst das mal selbst :-) musst doch nur die knotenliste durchlaufen und jeden record in eine datei ablegen. beim neuerstellen des forms das ganze dann wieder laden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:11 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