Delphi ist ein leistungsstarkes visuelles Programmentwicklungstool. Wenn wir Delphi zum Entwickeln von WINDOWS-Anwendungen verwenden, stellt Delphi zwar viele Eigenschaften (PRperty) und Ereignisse (Event) für jede visuelle Komponente bereit, in tatsächlichen Anwendungen können jedoch einige spezielle Ereignisse auftreten, die wir nicht benötigen um diese besonderen Ereignisse zur Anwendung hinzuzufügen. Wenn diese Ereignisse auftreten, können die Prozeduren zur Behandlung dieser Ereignisse sofort aufgerufen werden. In diesem Artikel wird anhand von Beispielen veranschaulicht, wie Ereignisse zur Anwendung hinzugefügt und verarbeitet werden.
In Delphi sind Ereignisse eigentlich spezielle Eigenschaften, die Zeiger auf eine Prozedur sind. Um ein Ereignis hinzuzufügen, sollten Sie zunächst einen Zeiger auf den Ereignisprozess in der definierten Klasse angeben. Die Funktion dieses Zeigers besteht darin, den Prozess auszuführen, auf den dieser Zeiger zeigt, um das Ereignis zu verarbeiten, sobald das Ereignis auftritt. Schließlich werden die definierten Ereignisattribute und der ihnen zugeordnete Ereignisverarbeitungszeiger über den Spezifizierer veröffentlicht veröffentlicht.
In diesem Beispiel ist FtooBig der definierte Ereignisverarbeitungszeiger und OnTooBig der Ereignisattributname. Der Ereignisverarbeitungsprozesszeiger FtooBig wird durch die Initialisierung des Programms so eingestellt, dass er auf den Prozess TooBig1 zeigt. Platzieren Sie drei Bearbeitungsfelder im Delphi-Formular (Form1), nämlich Edit1, Edit2 und Edit3, und platzieren Sie eine Schaltfläche Button1. Das Programm richtet private Ganzzahlvariablen val1, val2 und res ein. Die Variable res wird verwendet, um das Produkt von val1 und val2 aufzuzeichnen und mit Edit3 anzuzeigen. Wenn einer der über Edit1 und Edit2 eingegebenen Daten größer als 100 ist, wird ein Ereignis ausgelöst und die Ereignisbehandlungsprozedur TooBig1 aufgerufen, um ein Dialogfeld anzuzeigen, das angibt, dass dieses Ereignis aufgetreten ist und verarbeitet wurde. Der Quellprogrammcode lautet wie folgt: Das Programm wurde in Delphi 3 debuggt.
unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; {Geben Sie die erste Ganzzahl ein} Edit2: TEdit; {Geben Sie die zweite Ganzzahl ein } Edit3 : TEdit; {Das Produkt der ersten beiden Ganzzahlen ausgeben} Button1: TButton procedure Button1Click(Sender: TObject); procedure TooBig1(Sender: TObject); {Diese Prozedur wird aufgerufen, wenn das Ereignis ausgelöst wird} procedure FormCreate(Sender: TObject); {val1 und val2 speichern die beiden Eingabezahlen, res speichert das zwei Produkt von Zahlen} FTooBig : TNotifyEvent; {Definieren Sie einen Zeiger auf den Event-Handler FTooBig} { Private Deklarationen } public { Öffentliche Deklarationen } publicproperty OnTooBig:TNotifyevent read FTooBig write FTooBig;{define event} end;var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);begin val1 := StrToInt(Edit1.Text); = StrToInt(Edit2.Text); if(val1< 100)and(val2< 100) then begin res := val1*val2; Edit3.Text := IntToStr(res); end else if used(FTooBig) then OnTooBig(Self);end;procedure TForm1.TooBig1(Sender: TObject );beginapplication.MessageBox('Too Big',' Test Event! ',MB_OK);end;procedure TForm1.FormCreate(Sender: TObject);begin val1:=1; FTooBig := TooBig1;{Den Event-Handler-Zeiger auf den Event-Handler zeigen lassen}end;end.