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 上例中省略了最...