Ereignisse sind Eigenschaften

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Was sind Ereignisse?


Komponenten implementieren ihre Ereignisse in Form von Eigenschaften. Im Gegensatz zu den meisten anderen Eigenschaften setzen Ereignisse keine Methoden zur Implementierung ihrer read- und write-Abschnitte ein. Sie bedienen sich statt dessen eines als private deklarierten Klassenfeldes, das denselben Typ wie die Eigenschaft aufweist.

Per Konvention besteht der Name des Felds aus dem Namen der Eigenschaft, dem der Buchstabe F vorangestellt wird. Beispielsweise wird der Zeiger der Methode OnClick in einem Feld namens FOnClick vom Typ TNotifyEvent gespeichert. Die Deklaration der Ereigniseigenschaft OnClick sieht folgendermaßen aus:

 type
   TControl = class(TComponent)
   private
     FOnClick: TNotifyEvent;       { Deklaration eines Feldes für den Methodenzeiger }
     .
     .
     .
   protected
     property OnClick: TNotifyEvent read FOnClick write FOnClick;
   end;
 class PACKAGE TControl : public TComponent
 {
 private:
     TNotifyEvent FOnClick;
   .
   .
   .
 protected:
     __property TNotifyEvent OnClick = {read=FOnClick, write=FOnClick};
   .
   .
   .
 };

Informationen über TNotifyEvent und andere Ereignistypen finden Sie unter Ereignistypen sind Methodenzeigertypen.

Genauso wie bei anderen Eigenschaften können Sie auch bei Ereignissen den Wert zur Laufzeit setzen oder ändern. Dass Ereignisse als Eigenschaften eingesetzt werden können, hat einen großen Vorteil: Die Benutzer der Komponenten können den Ereignissen zur Entwurfszeit mithilfe des Objektinspektors Routinen zuweisen.

Siehe auch