Ich habe mir eine eigene Klasse von TList abgeleitet. Dieser möchte ich eine Sortierfunktion hinzufügen. Dazu muss man der vorhandenen TList-Funktion Sort etwas vom Typ TListSortCompare übergeben. Ich bekomme es nicht hin. An der markierten Stelle kommt die Fehlermeldung "Inkompatible Typen: Reguläre Prozedur und Methodenzeiger"
Delphi-Quellcode:
TMyList = class(TList)
private
SortedColumn: Integer;
function MyListSortCompare(Item1, Item2: Pointer): Integer;
public
procedure SortByColumn(Column: Integer);
end;
procedure TMyList.SortByColumn(Column: Integer);
begin
SortedColumn := Column;
Sort(MyListSortCompare); //<-- FEHLER: Inkompatible Typen: Reguläre Prozedur und Methodenzeiger
end;
function TMyList.MyListSortCompare(Item1, Item2: Pointer): Integer;
begin
result := MachWas(Item1, Item2, SortedColumn);
end;