Einzelnen Beitrag anzeigen

Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#3

Re: VirtualTreeView Layout und Werte in INI speichern

  Alt 14. Okt 2007, 14:00
Hallo Marcus,

Zitat von M. Hassmann:
schade das meine tutorials nicht bei google auffindbar sind?!
In der Tat. Die hab ich nicht bei Google gefunden. Ich habe aber auch nur in englisch gesucht - gewohnheit

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:
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;
Vorher natürlich Grid und AIni zuweisen. Bei Bedarf TTntMemIni durch TMemIni o.ä. ersetzen. Ist ja nur ein Unicode Handler.

Jetzt fehlt nur noch das Lesen/Speichern der Nodes in INIs - Hat da auch schon wer etwas "erfunden"?

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat