Der Funktionszeigertyp TSortCompare ist ja so deklariert:
Delphi-Quellcode:
type
TSortCompare = function(const Str1, Str2: String; SortDirection : TSortDirection): integer;
Jetzt hängst du hinten ein
of object
ran und es entsteht ein Methodenzeiger:
Delphi-Quellcode:
type
TSortCompare = function(const Str1, Str2: String; SortDirection : TSortDirection): integer of object;
Ein Methodenzeiger besteht intern aus zwei Zeigern mit folgendem Aufbau:
Delphi-Quellcode:
TMethod = record
Code: Pointer; // zeigt auf die Adresse der Funktion/Procedure
Data: Pointer; // zeigt auf das Objekt, dass implizit als "self" übergeben wird
end;