Einzelnen Beitrag anzeigen

guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#9

Re: VirtualStringTree: Speicherleck

  Alt 28. Okt 2009, 08:20
Zitat von himitsu:
Delphi-Quellcode:
TNodeData = record
  Id: Integer; //Identifikation des Feldes
  AuthReq: Integer; //Benötigte Authorisierung;
  Text: String; //Beschriftung
end;
Wenn man das so sieht, dann hast du es ja schon getrennt
ID ist dann wohl dein externer Datensatz
und das Andere betrifft nur die GUI/Anzeige
Stimmt genau! ID ist die Identifikation des Feldes in der "Datenhaltung".

Ein einzelner Datensatz ist bei mir ein CollectionItem und diese werden in einer Collection gehalten, insofern könnte ich für den Knoten auch einen Zeiger auf das CollectionItem angeben.

Ich sehe derzeit folgende Möglichkeiten:

1. Ich lasse es so wie es ist und validiere die Knoten beim Einfügen, um auch alle wieder entfernt zu bekommen.

2. Ich lasse ID weg und füge stattdessen gleich einen Zeiger auf das CollectionItem in den Knoten ein, was vermutlich keine schlechte Idee ist, weil ich dann direkt auf die Daten zugreifen kann ohne vorher nach der ID suchen zu müssen.

3. Ich füge nur einen Zeiger auf ein CollectionItem ein und halte alle Daten (also auch die, die ich nur für die "hübschere" Anzeige benötige) in der Collection. Das führt natürlich dazu, das ich ein paar mehr Daten sichern muss (Inifile, XML-Datei oder DB), die eigentlich nur für die GUI interessant sind. Vorteil wäre hier, dass ich ziemlich flexibel neue Werte einfügen könnte, weil das alles dynamisch aus dem Datenbestand aufgebaut wird.

4. Ich füge nur die ID ein und hole mir die Werte wie von himitsu vorgeschlagen über entsprechende Funktionen.

Darüber werde ich einmal nachdenken müssen. Vielen Dank für die Inspiration!
  Mit Zitat antworten Zitat