Forum: Object-Pascal / Delphi-Language
Delphi
by dummzeuch,
5. Feb 2019
Lass mich raten: Du mischst Objekte und Interfaces? Also etwa so:
obj := TMyObject.Create;
Int1 := obj as IInterface1;
// oops, ich brauche ein anderes
Int1 := nil; // weg mit Int1, das brauche ich nicht mehr (*1)
Int2 := obj as IInterface2; // -> boom
Forum: Object-Pascal / Delphi-Language
Delphi
by dummzeuch,
4. Feb 2019
Kurze Antwort: Nein.
Es gibt mehrere Ansätze, von denen aber keiner zuverlässig ist, denn der freigegebene Speicher kann ja inzwischen anderweitig verwendet worden sein:
1. Man könnte überprüfen, ob ClassName immernoch den erwarteten Wert liefert. Problem: Solange der Speicher nicht neu verwendet wurde, funktioniert das auch nach der Freigabe. Wurde er neu verwendet, kann das eine andere...