Das nächste Mal bitte als Projekt
Mach mal folgendes, aber bedenke, dass das jetzt nur eine Lösung für deine Vorgehensweise hier ist. Und bitte alles beachten. Ich hänge bewusst die Datei nicht an, damit du die Änderungen auch selbst einbauen musst und hoffentlich auch verstehst:
Delphi-Quellcode:
procedure TForm2.Button2Click(Sender: TObject);
begin
VST.Clear;
DeleteNode(2); // Daten anhand des Index löschen. 2 ist nicht der absolute Index sondern der, der in Button1Click gesetzt wird
VST.RootNodeCount := aVSTDataClasses.Count;
end;
procedure TForm2.Button3Click(Sender: TObject);
begin
VST.Clear;
DeleteNode('Peter Wurst'); // Daten anhand eines Nutzernamens löschen
VST.RootNodeCount := aVSTDataClasses.Count;
end;
Delphi-Quellcode:
procedure DeleteNode(iIndex: Integer); overload;
//var
// Node: PVirtualNode;
begin
aVSTDataClasses.Delete(iIndex);
// Node := FindUserNodeByIndex(iIndex);
// if Assigned(Node) then
// Form2.VST.DeleteNode(Node);
end;
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
var
Column: TVirtualTreeColumn;
i: Byte;
begin
ReportMemoryLeaksOnShutdown := True;
...
VST.OnInitNode := VSTInitNode;
// VST.OnFreeNode := VSTFreeNode; // <--- WICHTIG! ENTFERNEN!
VST.OnGetText := VSTGetText;
end;