Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#3

AW: Methodenzeiger für Methoden in Klassen/Objekten

  Alt 27. Sep 2012, 17:55
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;
Andreas
  Mit Zitat antworten Zitat