Einzelnen Beitrag anzeigen

SneakyBagels
(Gast)

n/a Beiträge
 
#16

AW: Große Probleme mit VirtualStringTree

  Alt 17. Jun 2017, 17:48
Wollte gerade antworten

1. TObjectList habe ich durch TList ausgetauscht. Denn TObjectList UND die VST haben die Objekte.... "ge-owned" gehabt... glaube ich jedenfalls.

2. Folgende Änderung im OnFreeNode
Delphi-Quellcode:
procedure TForm2.VSTFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
begin
 VST.GetNodeData<TVSTData>(Node).Free;
 aVSTDataClasses.Delete(Node.Index); // <== das hier habe ich hinzugefügt
end;
Das funktioniert jetzt soweit.

- VST.Clear
VST leeren, Nodes löschen und TList-Objekte freigeben

- aVSTDataClasses.Free
Am Ende des Programms Liste freigeben

NUR ich kann mir gut vorstellen, dass meine Änderung oben mit Delete(Nodex.Index) richtig in die Hose geht, wenn man das VST um-sortiert (von Z nach A statt A nach Z).
Bzw. wenn man im VST nur ein paar Nodes und nicht alle angezeigt (Stichwort "Suche") dann ginge das auch echt in die Hose.
Oder sehe ich das falsch?

Und habe dabei gerade noch ein anderes Problem gefunden... ein VST.Clear räumt mir leider auch die TList leer, was ich nicht möchte.

Geändert von SneakyBagels (17. Jun 2017 um 17:57 Uhr)
  Mit Zitat antworten Zitat