delphi 過程型別

2021-09-01 01:28:48 字數 1410 閱讀 3798

procedural types(過程型別)

procedural types: overview(概述)

過程型別允許你把過程和函式作為「值」看待,它可以賦給變數或傳給其它過程和函式。比如,假設你

定義了乙個叫做calc 的函式,它有兩個整型引數並返回乙個整數值:

function calc(x,y: integer): integer;

你可以把calc 函式賦給變數f:

var f: function(x,y: integer): integer;

f := calc;

我們只取過程或函式頭(heading)並把procedure 或function 後面的標誌符去掉,剩下的就是過程型別

的名稱。你可以在宣告變數時直接使用這樣的名稱(就像上面的例子一樣),也可以宣告新型別:

type

tintegerfunction = function: integer;

data types, variables and constants

- 65 -

tprocedure = procedure;

tstrproc = procedure(const s: string);

tmathfunc = function(x: double): double;

varf: tintegerfunction;

proc: tprocedure;

sp: tstrproc;

m: tmathfunc;

procedure funcproc(p: tintegerfunction);

上面的所有變數都是過程指標,也就是指向過程或函式位址的指標。若想引用乙個例項物件的方法(參

考classes and objects),你需要在過程型別的名稱後面加上of object。比如

type

tmethod = procedure of object;

tnotifyevent = procedure(sender: tobject) of object;

這些型別表示方法指標。方法指標實際上是一對指標:第乙個儲存方法的位址,第二個儲存方法所屬的

物件的引用。給出下面的宣告

type

tnotifyevent = procedure(sender: tobject) of object;

tmainform = class(tform)

procedure buttonclick(sender: tobject);

...end;

varmainform: tmainform;

onclick: tnotifyevent

我們就可以進行下面的賦值:

onclick := mainform.buttonclick;

兩個過程型別是相容的,如果它們具有

Delphi 函式指標 過程 函式型別

pascal 中的過程型別與c語言中的函式指標相似,為了統一說法,以下稱函式指標。函式指標的宣告只需要引數列表 如果是函式,再加個返回值。下面講解指向非物件 一般的 函式 過程的函式指標。例如宣告乙個過程型別,該型別帶乙個通過引用傳遞的整型引數 type intproc procedure var ...

Delphi變數型別

delphi整形變數型別有以下幾種 type range format shortint 128.127 signed 8 bit smallint 32768.32767 signed 16 bit longint 2147483648.2147483647 signed 32 bit int64...

Delphi函式和過程

過程無返回值,函式有返回值。procedure myproc m,n integer o string p single 2.5 q string delphi 如上例所示,過程宣告和定義中,多個引數是用分號隔開的,但在呼叫時是用逗號隔開的 eg myproc 3,4,me 3.14 上例中省略了最...