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