Ereignisse aufrufen

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Eigene Ereignisse definieren


Möglicherweise müssen Sie in Ihren Komponenten dasselbe Ereignis aus unterschiedlichen Teilen Ihres Codes aufrufen. Sie sollten diese Ereignisaufrufe an einer Position zusammenfassen. Dazu erstellen Sie in der Komponente eine virtuelle Methode, die die Ereignisbehandlungsroutine der Anwendung (sofern zugewiesen) aufruft und die Standardbehandlung durchführt.

Diese virtuellen Methoden werden Ereignis-Dispatcher oder Do-Methoden genannt. Und zwar, weil gemäß der am weitesten verbreiteten Namenskonvention diese Methoden nach dem Ereignis, das Sie auslösen, benannt werden und dabei das Präfix On durch das Präfix Do ersetzt wird. Beispielsweise würde entsprechend dieser Konvention der Ereignis-Dispatcher, der das Ereignis OnClick auslöst, in DoClick umbenannt.

Die Zusammenfassung aller Ereignisaufrufe an einer Position stellt sicher, dass bei der Ableitung einer neuen Komponente die Ereignisbehandlung durch Überschreiben einer einzigen Methode angepasst werden kann. Das Durchsuchen des Quelltexts nach Stellen, an denen das Ereignis aufgerufen wird, entfällt bei diesem Vorgehen.

Wichtige Aspekte für das Aufrufen von Ereignissen

Zwei Punkte sind beim Aufruf von Ereignissen zu bedenken:

Beispiel eines Ereignis-Dispatchers

In dem folgenden einfachen Beispiel eines Ereignis-Dispatchers sind die oben genannten Aspekte berücksichtigt:

C++:

virtual void __fastcall TComponentName::DoEventName(UnicodeString Parameter1, UnicodeString Parameter2)
{
  if (FOnEventName)
    FOnEventName(this, Parameter1, Parameter2);
}

Delphi:

procedure TComponentName.DoEventName(Parameter1, Parameter2: string);
begin
  if Assigned(FOnEventName) then
    FOnEventName(Self, Parameter1, Parameter2);
end;

Durch Verwenden eines Ereignis-Dispatchers können Aufrufe der Ereignisbehandlungsroutine auf eine Zeile reduziert werden. Sie müssen nicht jedes Mal überprüfen, ob die Variable FOnEventName zugewiesen ist, sondern Sie rufen einfach den Ereignis-Dispatcher auf, und diese Prozedur übernimmt das Überprüfen der Variable.

Dieser Ansatz ermöglicht Entwicklern auch das Erstellen einer Unterklasse ihrer Komponente, um das Auslösen des Ereignisses schnell zu überschreiben.

Siehe auch