Hallo,
Mir ist gerade etwas aufgefallen. Angenommen wir haben 2 Interfaces die voneinander erben
Delphi-Quellcode:
IBaseInterface = interface;
IExtendedInterface = interface(IBaseInterface);
und eine Klasse die IExtendedInterface implementiert:
TKlasse = class(TInterfacedObject, IExtendedInterface);
Nun gibt es folgende Methode:
procedure Irgendwas(Base: IBaseInterface);
und der Aufruf:
Delphi-Quellcode:
var obj: TKlasse;
begin
// ...
Irgendwas(obj); // Inkompatible Typen: 'IBaseInterface' und 'TKlasse'
end;
Hab ich was verpasst oder sollte das nicht prinzipiell funktionieren?
Wenn ich TKlasse explizit zusätzlich IBaseInterface implementieren lasse (was ja eigentlich unnötig ist) dann funktionierts.
Hat das einen Grund (bin ich blöd?) oder ist Delphi blöd?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."