Clases y objetos de Delphi (5) -Primer evento de clase

Primero esboce la idea:
1. Cree una clase con un campo de edad FAge;
2. Lea y escriba FAge a través del atributo Age;
3. Si la edad ingresada es exactamente de 100 años, se activará un evento. : OnHundred


unit Unit1; la interfaz usa 
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls; type 
  TForm1 = class (TForm)
    Button1: TButton;
    Button2: TButton;
    Button3: TButton; procedure Button1Click (Sender: TObject );
     procedimiento Button2Click (remitente: TObject);
     procedimiento Button3Click (remitente: TObject);
   fin ; {primero defina un tipo especial: el tipo de procedimiento al que pertenece un objeto; esta es la premisa de crear un evento} 
  TMyEvent = procedimiento del objeto ; { TMyClass class) 
  TMyClass = class






    

    

  
  estricto  
    FAge privado : Entero;            {Campo de edad} 
    FOnHundred: TMyEvent;     {Especifique una variable para el tipo TMyEvent que acabamos de definir: FOnHundred} 
    procedimiento SetAge (valor constante : entero);
   procedimiento público
     SetOnHundred1; {el procedimiento que se llamará al establecer un evento} 
    procedimiento SetOnHundred2; {Procedimiento a llamar cuando se establece un evento} 
    constructor Crear;
     propiedad Edad: Entero leer FAge escribir SetAge;
     propiedad OnHundred: TMyEvent leer FOnHundred escribir FOnHundred; {De hecho, los eventos también son propiedades} 
    {El nombre de los eventos generalmente comienza con On} 
  final; var 
  Form1: TForm1; implementación {$ R * .dfm} {TMyClass} constructor TMyClass.Create;
 begin 
  FOnHundred: = SetOnHundred1; {Cuando se crea el objeto, primero dejamos que el evento llame al método SetOnHundred1 end } ; procedimiento TMyClass.SetAge ( const Valor: entero);
 comience si (Valor> 0 ) y (Valor < 200 ) luego 
    Fage: = Valor; si Valor = 100 entonces 
    OnHundred;       {Cuando la edad de entrada es 100 años, active el evento} end ; procedimiento TMyClass.SetOnHundred1 ;















  

   


comenzar 
  ShowMessage ( '¡Felicitaciones por su cumpleaños de 100 años!' );
 finalizar ; procedimiento TMyClass.SetOnHundred2;
 comenzar 
  ShowMessage ( '¡Espero que todos podamos vivir para tener 100 años!' );
 final ; // Prueba 1: procedimiento TForm1.Button1Click (Remitente : TObject);
 var 
  myClass: TMyClass; begin 
  myClass: = TMyClass.Create;
  myClass.Age: = 99 ;                   {si la edad no es negativa pero menos de 200} 
  ShowMessage (IntToStr (myClass.Age)); {99; el objeto acepta } 
  MyClass.Free; end ; // Prueba 2: procedimiento TForm1.Button2Click (Remitente: TObject);
 var












  myClass: TMyClass; begin 
  myClass: = TMyClass.Create; 
  myClass.Age: = 100 ; {El evento se activará en este momento, aparecerá un cuadro de diálogo: ¡Felicitaciones por su cumpleaños de 100 años!} 
  myClass.Free; end ; // Prueba 3: procedimiento TForm1.Button3Click (Remitente: TObject);
 var 
  myClass: TMyClass; begin 
  myClass: = TMyClass.Create; 
  myClass.OnHundred: = myClass.SetOnHundred2; {deje que el evento apunte a otro método} 
  myClass.Age: = 100 ; {esta vez será El evento se activará y aparecerá un cuadro de diálogo: ¡espero que todos podamos vivir hasta los 100 años!} 
  MyClass.Free; end ; {En 
  esta sección, personalicé un tipo de evento: TMyEvent, que no tiene parámetros, y 
  los tipos de eventos definidos por el sistema general son todos Hay parámetros; 
  el tipo y el número de parámetros se especifican cuando se define el tipo de evento,









 
  tipo de evento es un puntero, apunta a un proceso,
  Los parámetros del proceso de llamada a eventos deben ser los mismos 
  que la definición. Por ejemplo, TMyEvent no tiene parámetros, y SetOnHundred1 y SetOnHundred2 que llama no tienen parámetros. 
} 
Fin . 
Reimpreso: https://www.cnblogs.com/del/archive/2008/01 /11/1034525.html

Supongo que te gusta

Origin www.cnblogs.com/fansizhe/p/12723798.html
Recomendado
Clasificación