如何為Delphi程式新增事件和事件處理器

2021-06-16 02:30:19 字數 1850 閱讀 2839

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;

inte***ce

uses

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);

private

val1,val2,res:integer;

ftoobig : tnotifyevent;  

public

published

property  ontoobig:tnotifyevent read ftoobig write ftoobig;

end;

varform1: tform1;

implementation

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);

endelse

if assigned(ftoobig) then   ontoobig(self);

end;

procedure tform1.formcreate(sender: tobject);

begin

val1:=1;

val2:=1;

ftoobig := toobig1;

end;

end.

如何為ABAP程式新增許可權檢查

一 確認許可權物件,及其關聯字段 tcode su21 例如許可權物件 m mseg wmb 它關聯欄位為 werks 詳見下圖 二 在abap 中新增許可權檢查 tcode se38 types begin of ty check au,werks type mseg werks,end of t...

如何為應用程式新增通知能功?

1 增加notifytype型別及對應的posttype型別。例如 在notifyservice中為notifytype新增notifytype.miniresume 在expertcenter中為posttype新增posttype.miniresume 注意 請保持notifytype.mini...

如何為SWT Table新增列 Column 選單

為乙個table新增選單後,當右擊該table的某一行,即可彈出定義好的選單,這個不難做到。今天碰到一需求 需要針對table的某一列 column 的單元格新增右鍵選單,也即 只有在右鍵單擊某一列的單元格時,才在被選中的單元格上顯示出該右鍵選單。為實現這一需求,我們需要使用org.eclipse....