Einzelnen Beitrag anzeigen

Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: Problem mit Destroy und IInterface

  Alt 1. Apr 2008, 10:24
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
  Mit Zitat antworten Zitat