Delphi é uma poderosa ferramenta visual de desenvolvimento de programas. Quando usamos Delphi para desenvolver aplicativos WINDOWS, embora o Delphi forneça muitas propriedades (PRperty) e eventos (Event) para cada componente visual, em aplicativos reais, podemos encontrar alguns eventos especiais que precisamos, o Delphi não fornece eventos especiais. então precisamos adicionar esses eventos especiais ao aplicativo. Quando esses eventos ocorrem, os procedimentos para lidar com eles podem ser chamados imediatamente. Este artigo usa exemplos para ilustrar como adicionar eventos ao aplicativo e processá-los.
No Delphi, os eventos são, na verdade, propriedades especializadas, que são ponteiros para um procedimento. Para adicionar um evento, você deve primeiro especificar um ponteiro para o processo do evento na classe definida. A função deste ponteiro é executar o processo apontado por este ponteiro para tratar o evento assim que ele ocorrer. Finalmente, os atributos de evento definidos e o ponteiro de processamento de eventos associado a eles são publicados através do especificador publicado.
Neste exemplo, FtooBig é o ponteiro do processo de processamento de eventos definido e OnTooBig é o nome do atributo do evento. O ponteiro do processo de processamento de eventos FtooBig é feito para apontar para o processo TooBig1 através da inicialização do programa. Coloque três caixas de edição no formulário Delphi (Form1), nomeadamente Edit1, Edit2 e Edit3, e coloque um botão Button1. O programa configura variáveis inteiras privadas val1, val2 e res. A variável res é usada para registrar o produto de val1 e val2 e exibi-lo usando Edit3. Quando um dos dados de entrada através de Edit1 e Edit2 for maior que 100, um evento será acionado e o procedimento de tratamento de eventos TooBig1 será chamado para exibir uma caixa de diálogo indicando que este evento ocorreu e foi processado. O código do programa fonte é o seguinte. O programa foi depurado em Delphi 3.
unit Unit1;faz interface com Windows, Mensagens, SysUtils, Classes, Gráficos, Controles, Formulários, Diálogos, StdCtrls;tipo TForm1 = class(TForm) Edit1: TEdit {Insira o primeiro inteiro} Edit2: TEdit {Insira o segundo inteiro } Edit3; : TEdit; {Exibe o produto dos dois primeiros inteiros} Button1: TButton procedimento Button1Click(Sender: TObject); procedimento TooBig1(Sender: TObject); {Este procedimento é chamado quando o evento é acionado} procedimento FormCreate(Sender: TObject). os dois produtos de números} FTooBig : TNotifyEvent {define um ponteiro para o manipulador de eventos FTooBig} { Declarações privadas } public { Declarações públicas } Publicadoproperty; OnTooBig:TNotifyevent lê FTooBig escreve FTooBig;{definir evento} end;var Form1: TForm1;implementação{$R *.DFM}procedimento TForm1.Button1Click(Sender: TObject);begin val1 := StrToInt(Edit1.Text val2 ): = StrToInt(Edit2.Texto); 100) e (val2 < 100) então comece res := val1*val2; Edit3.Text := IntToStr(res); );beginapplication.MessageBox('Too Big',' Evento de teste! ',MB_OK);end;procedure TForm1.FormCreate(Sender: TObject);begin val1:=1; val2:=1; FTooBig := TooBig1;{Faça o ponteiro do manipulador de eventos apontar para o manipulador de eventos}end;end.