国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

如何為Delphi程序添加事件和事件處理器

2019-11-18 18:39:04
字體:
來源:轉載
供稿:網友
Delphi是一種功能很強的可視化程序開發工具。我們在使用Delphi開發WINDOWS 應用程序的過程中,雖然Delphi為每個可視化組件都提供了很多屬性(PRoperty)和事件(Event),但在實際應用中可能會碰到一些自己需要的特殊事件,這些特殊事件Delphi 又沒有提供,這時我們就需要為應用程序添加這些特殊事件。當這些事件發生后,又能馬上調用處理這些事件的過程。本文通過實例來說明如何為應用程序添加事件和處理事件的過程。

  在Delphi中,事件實際上是專門化的屬性,它是一個過程(procedure)的指針。要添加事件,首先應在所定義的類中說明一個用來指向事件過程的指針,該指針的作用是當事件一旦發生,就通過這個指針執行所指向的處理這個事件的過程。最后通過指定符 published公布定義的事件屬性以及與之關聯的事件處理過程指針。

  本例中,FtooBig為定義的事件處理過程指針,OnTooBig為事件屬性名。事件處理過程指針FtooBig通過程序的初始化使之指向過程TooBig1。在Delphi的表單(Form1)上放置三個編輯框,分別為Edit1、Edit2和Edit3,放一按鈕Button1。程序中設私有整型變量val1、val2和res,變量res用來記錄val1和val2的乘積,并用Edit3顯示出來。當通過Edit1和Edit2輸入的數據有一個大于100時,會觸發一個事件,并調用事件處理過程TooBig1顯示一個對話框,說明此事件已經發生并已進行處理。源程序代碼如下, 該程序在Delphi 3中調試通過。

unit Unit1;interfaceuses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  StdCtrls;type  TForm1 = class(TForm)    Edit1: TEdit;    {輸入第一個整數}    Edit2: TEdit;    {輸入第二個整數}    Edit3: TEdit;    {輸出前二個整數的積}    Button1: TButton;    procedure Button1Click(Sender: TObject);procedure TooBig1(Sender: TObject);     {當事件觸發后調用此過程}    procedure FormCreate(Sender: TObject);  privateval1,val2,res:integer; {val1和val2存放輸入的兩個整數,res存放兩數的積}FTooBig : TNotifyEvent;   {定義一個指向事件處理器的指針FTooBig}    { Private declarations }  public    { Public declarations }  publishedproperty  OnTooBig:TNotifyevent read FTooBig write FTooBig;{定義事件}  end;var  Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);begin  val1 := StrToInt(Edit1.Text);  val2 := StrToInt(Edit2.Text);  if(val1< 100)and(val2< 100) then    begin      res := val1*val2;      Edit3.Text := IntToStr(res);    end  else    if assigned(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;  val2:=1;  FTooBig := TooBig1;{使事件處理指針指向事件處理器}end;end.


上一篇:Delphi數據庫編程教程(三)

下一篇:Delphi代碼風格約定

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 邳州市| 石景山区| 乌兰浩特市| 景谷| 大田县| 青冈县| 滦平县| 平舆县| 克东县| 德清县| 太仆寺旗| 新晃| 渝北区| 航空| 玛曲县| 武义县| 板桥市| 合江县| 凤庆县| 资中县| 东乌珠穆沁旗| 彭水| 兴和县| 巴南区| 沂南县| 盖州市| 黔东| 汉沽区| 馆陶县| 中方县| 隆尧县| 怀化市| 资溪县| 托克逊县| 嫩江县| 敖汉旗| 大冶市| 治县。| 剑阁县| 纳雍县| 盐池县|