Zitat von
Bernhard Geyer:
Arbeite entweder mit Parent-Child-Beziehung oder mit Interface. Ansonsten wird es passieren das sowohl der Parent als auch die automatische Referenzzählung versucht die Instanz freizugebn.
Ich vergass zu werwähnen das die Klassen direkt von TObject abgeleitet werden. Also gibt es auch kein Parent-Child-Beziehung.
Die
Exception kommt an folgender Stelle (RefCount ist "1"):
Delphi-Quellcode:
procedure TInterfacedObject.BeforeDestruction;
begin
if RefCount <> 0 then
Error(reInvalidPtr);
end;
Zur Lösung des Problems habe ich jetzt eine procedure "Free_" mit folgendem Code eingeführt:
Delphi-Quellcode:
procedure TPmGateway.Free_;
begin
Self._Release;
end;
Wäre aber dennoch schön wenn mir einer erklären kann wie das Problem normalerweise zu lösen ist, so dass ".Free"/der normaler Destructor benutzt werden kann.
Sahlom&TIA