Einzelnen Beitrag anzeigen

RedOne

Registriert seit: 2. Jun 2008
71 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Data-Pointer in Interfacevariable casten

  Alt 14. Jul 2010, 14:08
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
  Mit Zitat antworten Zitat