Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: TNotifyEvent - Eigenschaft, Aktion, oder was?

  Alt 24. Jan 2005, 15:56
Grundsätzlich kann man auch sagen, dass diese ganzen On...-Properties (ala OnClick, OnCreate, OnShow, OnClose usw.) alles nur procedurale Variablen sind. Es sind also alles Pointer-Variablen, die auf jeweils einen ganz bestimmten Typ von Procedure zeigen oder Nil sind. Und logischerweise gibt man diesen proceduralen Variablen dann natürlich auch den gleichen Typ, den die dadurch gepointeten & aufrufbaren Procedures selbst haben. (...Wobei der "Typ einer Procedure" sich in erster Linie nur in der Machart seiner Parameterliste ausdrückt.)


Wenn OnClick nun von diesem Typ TNotifyEvent ist, dann muss man also wissen, wie der Procedure-Kopf für diese Sorte von Procedure aussieht. Nämlich so:

type TNotifyEvent = procedure (Sender: TObject) of object;

Was also speziell heißt, dass deine Procedure, die du jetzt mittels OnClick aufrufen möchtest, auch eine exakt ebenso geartete Parameterliste haben muss ('of object' gehört da natürlich nicht mehr dazu).


Solltest du also irgendwann mal eine On...-Property von einem anderen Typ als TNotifyEvent laden wollen, z.B. die OnMouseDown-Property vom Typ TMouseEvent, dann heißt das eben jetzt auch wieder nur: Die Parameterliste der fraglichen Procedure muss nun genauso auszusehen, wie das jetzt eben durchs TMouseEvent definiert wird. ...Und sowas steht ja immer in der OH.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat