Hallo,
Ich weiß nicht ob ich gerade auf dem Schlauch stehe oder ob da in Delphi irgendwas kaputt ist.
Folgender Code von mir:
Delphi-Quellcode:
type
TKlasse = class(TInterfacedObject, System.IComparable<TForm>)
public
function CompareTo(Value: TForm): Integer;
end;
function TKlasse.CompareTo(Value: TForm): Integer;
begin
Result := 0; // Was auch immer..
end;
Delphi bringt mir nun die Meldung:
[dcc32 Fehler] Unit1.pas(18): E2291 Implementierung der Interface-Methode IComparable.CompareTo fehlt
Warum denn das?
IComparable<T> ist so definiert:
Delphi-Quellcode:
IComparable<T> = interface(IComparable)
function CompareTo(Value: T): Integer;
end;
Ist Delphi blöd oder steh ich grad aufm Schlauch?
Edit: Habs. IComparable (nicht generisch) hat natürlich auch eine CompareTo-Methode und die muss ich dann noch zusätzlich implementieren:
Delphi-Quellcode:
type
TKlasse = class(TInterfacedObject, System.IComparable<TForm>)
public
function CompareTo(Obj: TObject): Integer; overload;
function CompareTo(Value: TForm): Integer; overload;
end;
Das war früher aber nicht.. Ist das so gewollt? Weil das ist doch irgendwie bescheuert -.-
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."