Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#30

AW: Fehler beim Programm beenden

  Alt 28. Okt 2015, 09:03
als Anlage mal das Musterprojekt genau nach Deinen vorgaben. Trotzallem immer noch der gleiche Fehler.
Ändere mal in der for-Schleife diese Zeilen:
Delphi-Quellcode:
   
 for I := 0 to 10 do
    begin
      BuildingNode := vstKunden.AddChild(nil);
      Daten := vstKunden.GetNodeData(CustomerNode);
...
in folgende Zeilen:

Delphi-Quellcode:
   
 for I := 0 to 10 do
    begin
      BuildingNode := vstKunden.AddChild(nil);
      Daten := vstKunden.GetNodeData(BuildingNode);
...
Außerdem bitte noch das OnFreeNode ergänzen:
Delphi-Quellcode:
procedure TForm1.vstKundenFreeNode(Sender: TBaseVirtualTree; Node: PVirtualNode);
var
  Kunden_Daten: PRKundenDaten;
begin
  case vstKunden.GetNodeLevel(Node) of
    0:
    begin
      Kunden_Daten := Sender.GetNodeData(Node);
      Kunden_Daten^.FKundedaten.Free;
      Kunden_Daten^.FObjektdaten.Free;
      Kunden_Daten^.FSystemdaten.Free;
      Finalize(Kunden_Daten^);
    end;
  end;
end;
Und jetzt darfst du gerne mit den Kopf auf den Tisch schlagen.

PS: Trotzdem wäre der Weg mit externer Datenhaltung über eine Objektliste langfristig besser!
Bitte beschäftige dich damit.
  Mit Zitat antworten Zitat