Thema: Delphi Interface-Übergabe

Einzelnen Beitrag anzeigen

Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#1

Interface-Übergabe

  Alt 2. Aug 2006, 23:45
Hallo,

folgende Situation:

Delphi-Quellcode:
type
  IMyInterface = interface(IInterface)
    [(GUID-Zeuch)]
    funktionen(zeuch);
  end;

  TMyInterfaced = class(TInterfacedObject,IMyInterface)
    funktionen(zeuch);
  end;
Darauf will ich jetzt zugreifen:

Delphi-Quellcode:
ObjektListe.Add(TMyInterfaced.Create);

SomeControl.Data := Liste[0]; // Data is Pointer
Und jetzt gibt es irgendwo ein Ereignis:

Delphi-Quellcode:
procedure Bla(Sender: TObject);
begin
  MethodeDieIMyInterfaceWill(IMyInterface(SomeControl.Data));
end;
So, und da knallts, aber gewaltig... was bisher der Compiler nicht wollte:

Delphi-Quellcode:
var obj: TObject;

obj := TObject(SomeControl.Data);
MethodeDieIMyInterfaceWill(obj as IMyInterface);
Und so einiges anderes an wildem rumgecaste... er scheint TObject nicht als mit IInterface kompatibel anzuerkennen. wie sag ic h ihm, er solls trotzdem machen, ohne ihm irgendeine Vertreterklasse (in der ich das Interface implementiere) hinzucasten, was ja eigentlich nicht der Sinn von interfaces ist?
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat