![]() |
Delphi-Version: 5
ShellTreeView - Zustand speicher/laden
Hallo Jungs,
ich habe diese Frage schon auf einem englischen Lazarus Forum gestellt, aber irgendwie komme ich da nicht weiter, daher wende ich mich an euch. )) Also ich habe folgendes Problem. Ich verwende diesen Code um den Zustand der ShellTreeView zu speichern, das heiß die Verzeichnisse die beim Schließen der Anwendung aufgeklappt waren, werden beim nächsten Start der Anwendung wieder aufgeklappt erscheinen. Nun unter Windows sieht der Inhalt der tree.txt Datei wie folgt aus: Zitat:
Zitat:
Hier mein Code:
Delphi-Quellcode:
Vielen Dank in Voraus!
// Merkt sich den Zustand der ShellTreeView, welche Äste aufgeklappt sind
procedure TMainForm.MemorizeTreeExpand(); var i: Integer; str: String; begin ExpandedTreeNodes.Clear; for i := 0 to ShellTreeView1.Items.Count - 1 do begin if ShellTreeView1.Items[i].Expanded then begin str := ShellTreeView1.Items[i].GetTextPath; { Da ist unter Linux ein Wurm drin in TTreeNodes.GetTextPath: Wenn Root = '/', werden alle weiteren Unterverzeichnisse als '//xyz' zurückgegeben, das findet dann TTreeNodes.FindNodeWithTextPath nicht mehr. Deshalb die folgende Zeile: } {$IFDEF UNIX} if (Length(str) > 1) and (str[1] = '/') and (str[1] = str[2]) then Delete(str, 1, 1); {$ENDIF} ExpandedTreeNodes.Add(str); end; end; end; // Stellt den Zustand der ShellTreeView wieder her, welche Äste aufgeklappt sind procedure TMainForm.RecallTreeExpand(); var i: Integer; ANode: TTreeNode; begin for i := 0 to ExpandedTreeNodes.Count - 1 do begin ANode := ShellTreeView1.Items.FindNodeWithTextPath(ExpandedTreeNodes[i]); if ANode <> nil then ANode.Expand(False); end; end; // Speichert den Zustand der ShellTreeView, welche Äste aufgeklappt sind procedure TMainForm.BackupTreeExpand(); begin try ExpandedTreeNodes.SaveToFile(ExtractFilePath(ParamStr(0)) + 'settings' + PathDelim + 'tree.txt'); except // keine Fehlermeldung ausgeben end; end; // Lädt den Zustand der ShellTreeView, welche Äste aufgeklappt sind procedure TMainForm.RestoreTreeExpand(); begin try ExpandedTreeNodes.LoadFromFile(ExtractFilePath(ParamStr(0)) + 'settings' + PathDelim + 'tree.txt'); except // keine Fehlermeldung ausgeben end; end; |
AW: ShellTreeView - Zustand speicher/laden
Es sollte doch reichen den ShellTreeView.Path abzuspeichern und wieder zu setzen? Und Delphi hat doch den TrailingPathDelimiter, der automatsich angepasst wird ('/' oder '\').
|
AW: ShellTreeView - Zustand speicher/laden
Liste der Anhänge anzeigen (Anzahl: 1)
Was macht eigentlich ShellTreeView.Path? Lazarus Hilfe ist dazu leer, siehe Screenshot...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:48 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 by Thomas Breitkreuz