Delphi es una poderosa herramienta de desarrollo de programas visuales. Cuando usamos Delphi para desarrollar aplicaciones WINDOWS, aunque Delphi proporciona muchas propiedades (PRperty) y eventos (Event) para cada componente visual, en aplicaciones reales, podemos encontrar algunos eventos especiales que Delphi no proporciona. entonces necesitamos agregar estos eventos especiales a la aplicación. Cuando ocurren estos eventos, los procedimientos para manejarlos se pueden llamar inmediatamente. Este artículo utiliza ejemplos para ilustrar cómo agregar eventos a la aplicación y procesarlos.
En Delphi, los eventos son en realidad propiedades especializadas, que son indicadores de un procedimiento. Para agregar un evento, primero debe especificar un puntero al proceso del evento en la clase definida. La función de este puntero es ejecutar el proceso señalado por este puntero para manejar el evento una vez que ocurre. Finalmente, los atributos de evento definidos y el puntero de procesamiento de eventos asociado con ellos se publican a través del especificador publicado.
En este ejemplo, FtooBig es el puntero del proceso de procesamiento de eventos definido y OnTooBig es el nombre del atributo del evento. El puntero del proceso de procesamiento de eventos FtooBig apunta al proceso TooBig1 mediante la inicialización del programa. Coloque tres cuadros de edición en el formulario Delphi (Form1), a saber, Edit1, Edit2 y Edit3, y coloque un botón Button1. El programa configura variables enteras privadas val1, val2 y res. La variable res se usa para registrar el producto de val1 y val2 y mostrarlo usando Edit3. Cuando uno de los datos ingresados a través de Edit1 y Edit2 es mayor que 100, se activará un evento y se llamará al procedimiento de manejo de eventos TooBig1 para mostrar un cuadro de diálogo que indica que este evento ocurrió y se procesó. El código fuente del programa es el siguiente. El programa ha sido depurado en Delphi 3.
unidad Unidad1; interfaz utiliza Windows, Mensajes, SysUtils, Clases, Gráficos, Controles, Formularios, Diálogos, StdCtrls; escriba TForm1 = clase (TForm) Edit1: TEdit; : TEdit; {Generar el producto de los dos primeros números enteros} Botón1: TButton; procedimiento Botón1Clic(Remitente: TObject); procedimiento TooBig1(Remitente: TObject); {Este procedimiento se llama cuando se activa el evento} procedimiento FormCreate(Remitente: TObject); privateval1,val2,res:integer {val1 y val2 almacenan los dos enteros de entrada; los dos Producto de números} FTooBig: TNotifyEvent; {definir un puntero al controlador de eventos FTooBig} { Declaraciones privadas } public { Declaraciones públicas } propiedad publicada OnTooBig:TNotifyevent leer FTooBig escribir FTooBig;{definir evento} fin;var Form1: TForm1;implementación{$R *.DFM}procedimiento TForm1.Button1Click(Remitente: TObject);comenzar val1 := StrToInt(Edit1.Text val2 : = StrToInt(Edit2.Texto); si(val1<); 100)y(val2< 100) luego comience res := val1*val2; Edit3.Text := IntToStr(res); finalice si está asignado (FTooBig) y luego OnTooBig(Self);end;procedimiento TForm1.TooBig1(Remitente: TObject );beginapplication.MessageBox('Demasiado grande',' ¡Evento de prueba! ',MB_OK);end;procedimiento TForm1.FormCreate(Remitente: TObject);begin val1:=1; val2:=1; FTooBig := TooBig1;{Haga que el puntero del controlador de eventos apunte al controlador de eventos}end;end.