delphi 過程以保留字procedure開始,沒有返回值;函數以保留字function開始,有返回值。過程參數位於括號里面,多個參數之間以分號分隔,例如:
procedure SetDate(Year: Integer; Month: Integer; Day: Integer);
也可以將相同類型的參數組合在一起,則上述過程標題寫成:
procedure SetDate(Year, Month, Day: Integer);
函數在標題中還多了一項——返回值的類型。下面是一個返回值為Double型的函數標題:
function GetAverage(num:integer;total:Double):Double;
1.基本概念
(1)函數
函數有兩類:
一類是標准函數,這一類函數由Delphi定義並實現,程序員可以直接引用;
另一類為自定義函數,一個自定義函數應首先在程序聲明部分聲明,之后才可以在程序的執行部分加以調用。
過程或函數的語句部分由begin開始、end結束。函數需要一個返回值。可以將返回值賦給函數名稱,也可以將返回值賦給Result變量。
例::
function GetAverage(num:integer;total:Double):Double; begin GetAverage := total / num; end;
也可以將返回值賦給Result變量:
Result := total / num;
(2)過程
定義過程的保留字是procedure。
過程也有兩類:一類為Delphi定義的標准過程,另一類為自定義過程。
2. 參數與作用域
(1)參數
過程和函數與外界的數據通信有兩種方式:一種是通過全局量,另一種是通過參數。最常用的參數有值參數、變量參數和常量參數3種。
· 值參數 若參數定義為值參數,則函數的調用對實參的值沒有影響。
· 變量參數(Var申明) 若參數定義為變量參數,則函數調用的結果對實參的值有影響。
· 常量參數(const 申明) 如果參數定義為常量參數,則當過程或函數執行時不改變形參的值。
如果當過程或函數執行時要求不改變形參的值,則最保險的辦法是使用常量參數。在形式參數表的參數名稱前加上保留字const可以使一個形參成為常量參數。
(2)作用域
1)全局變量是在主程序中定義的變量。
2)局部變量是在過程或函數中定義的變量。
全局變量對於整個程序均適用,局部變量只對定義它的過程或函數有效。
Object Pascal語言對於變量的作用域有如下約定:
1)在不同層次可以定義使用同名變量,但在同一層中1個變量只能定義1次。
2)同名變量在不同層次被定義時,代表不同的對象。執行內層程序時,外層的非局部變量雖然存在,卻已經被屏蔽;而當程序從內層退出后,內層的局部變量就已經不存在,只有外層的那個非局部變量仍然存在。
需要注意的是,Delphi和其他一些語言不同,它的函數在返回值的時候並不中止函數本身,它總會執行到函數的最后一條語句。如果需要提前退出,可以用 Exit;語句。