Merci für Deine Antwort.
Mit
i:= IDataObject( ListViewMain.Selected.Data );
wird bei dieser Zeile eine
Exception geworfen (Zugriffsverletzung) obwohl das Objekt existiert und auch instanziert ist (habs zur Sicherheit nochmals getestet).
Casten mit
i:= Interface(ListViewMain.Selected.Data) as IDataObject;
ergibt einen Compilerfehler...
Das Objekt (TAccountDataExtend) im Data implementiert eine weitere Klasse (TAccountData) und das Interface. TInterfacedObject implementiere ich schon auf der implementierten Klasse TAccountData. Ich nehme an, dies sollte schon funktionieren? Ein anderer Weg ist mir (bisher) noch nicht bekannt.
Delphi-Quellcode:
TAccountData = class( TInterfacedObject )[...]
TAccountDataExtend = class( TAccountData, IDataObject ) [...]
Die Frage betreffend der Referenzzählung ist gut
In Delphi habe ich bisher nicht das Glück gehabt mit Interfaces zu arbeiten. Da bin ich wohl ein bisschen .Net verwöhnt bei dem dies keine Rolle spielt
Herzlichen Dank
RedOne