![]() |
TreeView:einträge selbst speichern
Hallo,
ich möchte gerne einträge ohne die funktion SaveToFile speichern denn ich muss die einträge in ein eigens format speicher das so aussieht:
Delphi-Quellcode:
das einlesen funktioniert schon auch das löschen nur beim speichern komme ich nicht weiter .
test1\0\1\2
3 test444\test5 das einlesen funktioniert so:
Delphi-Quellcode:
und beim speichenen müste er das genau in diesen format speichern:
procedure TForm5.FillTreeView(Datei:TFileName;TreeView:TTreeView);
var i,t:Integer; daten:TStringList; str:String; temp:TTreeNode; begin daten:=TStringList.Create; daten.LoadFromFile(Datei); for i:=0 to Daten.Count-1 do begin str:=Daten.Strings[i]; temp:=nil; for t:=1 to NumToken(str,'\') do begin temp:=TreeView.Items.AddChild(temp,Gettoken(str,'\',t)) end; end; end; //das löschen so: if MessageDlg('Wirklich löschen ?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then TreeView1.Selected.Delete;
Delphi-Quellcode:
ich habe die Forensuche benutzt und habe leider nichts gefunden was mir weiter geholfen hätte
test1\0\1\2
3 test444\test5 |
Re: TreeView:einträge selbst speichern
ich würde prinzipiell beim speichern einer treeview nicht über text sondern über eine datenbank gehen
kuckst du ![]() |
Re: TreeView:einträge selbst speichern
danke für deine antwort doch leider habe ich keine DB unterstüzung.
und ich glaube das würde sich in meinen fall auch garnicht lohnen. das Thema habe ich auch schon gefunden und auch das mit der TreeViewToIni funktion. Beider hilft mir nicht wirklich weiter. |
Re: TreeView:einträge selbst speichern
Zitat:
Erstelle eine StringList und füge für jeden Hauptknoten eine Zeile ein. Solange TTreeNode.Count nicht null ist, hängst du an die Zeile '\' + Item[0] des aktuellen Knotens an und machst diesen zum aktuellen. |
Re: TreeView:einträge selbst speichern
Irre ich mich, oder gehen dabei alle Knoten, die sozusagen "Zweitgeborene" sind über den Jordan?
Test1\1\x Test1\2\c <-- der hier stirbt doch, oder? |
Re: TreeView:einträge selbst speichern
Ich bin davon ausgegangen, dass es keine "Zweitgeborenen" gibt. Denn miris Code zum Laden würde dann für jeden Unterknoten den gesamten Zweig noch einmal erstellen.
|
Re: TreeView:einträge selbst speichern
Hallo Michael.
Code:
Steht das Format wirklich fest? Ist es kontextfrei? Oder was ist die Bedeutung der 3 in der zweiten Zeile? Wie soll mit Namensgleichheiten umgegangen werden?
test1\0\1\2
3 test444\test5 Grüße vom marabu |
Re: TreeView:einträge selbst speichern
das Format steht eigentlich schon fest und ich würde es nur ungern umändern
die drei in der zweiten zeile soll ein einfacher menupunkt werden also kein untermenu.... und das klappt ja auch schon wunderbar *G* @tigerman33 was meinst du damit ? also in meinen tests hat es funktioniert ! |
Re: TreeView:einträge selbst speichern
Zitat:
|
Re: TreeView:einträge selbst speichern
Hallo Michael,
zum Speichern kannst du folgende Funktionen verwenden. Ich bevorzuge das zweite Format.
Delphi-Quellcode:
marabu
// Format: knoten\unterknoten
function TreeNodePath(node: TTreeNode; delimiter: char): string; begin if Assigned(node) then begin Result := TreeNodePath(node.Parent, delimiter); if Result <> '' then Result := Result + delimiter; Result := Result + node.Text; end else Result := ''; end; // Format: \knoten\unterknoten function TreeNodePath(node: TTreeNode; delimiter: char): string; begin if Assigned(node) then Result := TreeNodePath(node.Parent, delimiter) + delimiter + node.Text else Result := ''; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:27 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