Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi treeview + liste abspeichern (https://www.delphipraxis.net/20927-treeview-liste-abspeichern.html)

tuxic 25. Apr 2004 14:26


treeview + liste abspeichern
 
Hi,
ich überlege schon seit geraumer Zeit, wie man am besten ein TreeView in Verbindung mit einer Liste abspeichern kann...
Das sieht konkret so aus, das man ein Eintrag im TreeView selektieren kann, und dann da neben in einer Liste oder in meheren Labels Daten angezeigt werden.
Diese Struktur würde ich gerne effizient abspeichern... TreeView.SaveToFile sagt mir da nicht so zu, weil das Format mit den Tabs total böde :roll: is.
Also irgendwer ein netten Ansatz? Wenn man das Format vom TreeView.SaveToFile ändern könnte (also anstat 5 Tabs einfach die Zahl 5) dann würde ich einfach die Daten aus der Liste an den Eintrag anhängen...
:gruebel:

Daniel

Delphi_Fanatic 25. Apr 2004 15:00

Re: treeview + liste abspeichern
 
Schau Dir doch mal die .data-Eigenschaft eines TreeViewItems an... da kannst Du einen Zeiger auf eine beliebige Datenstruktur drin speichern.

Damit könntest Du z.B. das hier hinkriegen :
Zitat:

Das sieht konkret so aus, das man ein Eintrag im TreeView selektieren kann, und dann da neben in einer Liste oder in meheren Labels Daten angezeigt werden.
Einfach in der TreeView das OnClick-Event entsprechend belegen und dort 'ne Prozedur einbauen, die die Data-Eigenschaft ausliest und dann in Deiner Liste anzeigen.

Zum Abspeichern könntest Du dann sämtliche Elemente der TreeView sequentiell durch lesen und jedesmal den Inhalt von .data eines TreeViewItems in eine formatierte Datei abspeichern (ich würd' 'ne ini-Datei nehmen. Ist leicht zu handeln...)

tuxic 25. Apr 2004 16:46

Re: treeview + liste abspeichern
 
Hey, das hört sich richtig gut an :) ,
nur leider bin ich mit Pointern nicht vertraut, zum Testen hab ich mal das gebaut, nur leider funktionert es nicht.

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var
  temp:^string;
begin
  new(temp);
  temp^ := 'lari';
  treeview1.Items.Item[0].Data := temp;
  memo1.Text := treeview1.Items.Item[0].data^;
end;
in der lezten Zeile kommt der Fehler:
Zitat:

Inkompatible Typen: 'String' und 'procedure, untyped pointer or untyped parameter'
Ich vermute mal der Zugriff auf den Pointer ist nicht richtig :?::!::?::!:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:23 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz