按照作用范圍說明標識符
您可以在應用程序的不同地方說明一個標識符而只需保證它們的有效范圍不同即可編譯器會自動訪問最靠近當前范圍的標識符
庫單元的全局變量一般可以說明在保留字implementation後面例如下面的例程實現將兩個編輯框中的整數相加顯示在第三個編輯框中用到了一個整形的全局變量Count
implememntation
var
Count : Integer;
procedure TFormAddClick(Sender:TObject);
var
FirstNumberSecondNumber:Integer;
begin
Count := Count + ;
CounterText := IntToStr(Count);
FirstNumber := StrToInt(EditText);
SecondNumber := StrToInt(EditText);
EditText := IntToStr(FirstNumber+SecondNumber);
end;
為了實現每按動一次按鈕Count增加一次必須對全程變量Count進行初始化處理在程序庫單元的結尾處最後一個end保留字之前加入保留字initialization和初始化Count的代碼
initialization
Count := ;
這樣當事件處理過程AddClick被觸發時Count就會被增加一次以表征計算次數如果用面向對象編程則Count可以說明成窗體的一個域這在下一節中將有講述
編寫一個過程或函數
在您開發Delphi應用程序時所需的大部分代碼都編寫在事件處理過程中但有時仍然需要編寫不是事件處理過程的函數或過程例如您可以把在多個事件處理過程中用得到語句編寫成過程然後任何事件處理過程過程函數都可以象調用已經存在的過程或函數一樣直接調用它好處是您只需編寫一次代碼而且程序代碼會比較清楚
一個自行編寫的函數例程
在上文兩個數相加的程序中如果編輯框中無值則會使得程序出錯中斷為避免這種情況編寫下面的函數檢查編輯框中是否有值如無值則提醒用戶輸入
function NoValue(AnEditBox:TEdit):Boolean;
begin
if AnEditBoxText= then
begin
AnEditBoxColor := clRed;
AnEditBoxText := 請輸入整數值;
Result := True;
end
else
begin
AnEditBoxColor := clWindow;
Result := False;
end;
end;
NoValue函數會檢查編輯框是否為空如果是編輯框顏色變紅並提醒用戶輸入一個整數然後函數返回真值Result保留字在Delphi中用來專指函數返回值在上文的例程中加入NoValue函數
procedure TFormAddClick(Sender: TObject);
var
FirstNumberSecondNumber : Integer;
begin
if NoValue(Edit)or NoValue(Edit) then
exit;
Count := Count + ;
CounterText := IntToStr(Count);
FirstNumber := StrToInt(EditText);
SecondNumber := StrToInt(EditText);
EditText := IntToStr(FirstNumber+SecondNumber);
end;
如果其中的任何一個返回真值則表示有編輯框空會執行exit過程使得當前的程序模塊停止執行並使得編輯框出現輸值提示當新值被輸入後再執行程序時紅色提示被隱去恢復正常的計算狀態
過程和函數的標題
每一個過程或函數都以標題開始其中包括過程或函數的名稱和它使用的參數過程以保留字procedure開始函數以保留字function開始參數位於括號裡面每一個參數以分號分隔例如
procedure validateDate(Day : Integer; month : Integer; Year : Integer);
您也可以將相同類型的參數組合在一起則上述過程頭寫作
procedure ValidateDate(Day Month Year : Integer);
函數在標題中還多了一項返回值的類型下面是一個返回值為Double型的函數標題
function CalculateInterest(principalInterestRate:Double):Double;
函數和過程中的類型說明
一個過程或函數程序模塊也含有說明部分和語句部分說明部分可以包括類型說明變量說明常量說明等除了Object Pascal語言中已經定義的類型之外Delphi的應用程序還可以建立新的數據類型類型說明部分有保留字type開始下面是一些類型的說明
type
Tcount = Integer;
TPrimaryColor = (RedYellowBlue);
TTestIndex = ;
TTextValue = ;
TTestList = array [TTestIndex] of TTestValue;
TCharVal = Ord(A)Ord(Z) ;
Today = (MondayTuesdayWednesdayThursdayFridaySaturdaySunday) ;
在類型標識符後面用=號定義了新的類型類型界定了變量的取值范圍例如TCount類型的變量必須是整形值一個TPrimaryColor類型的變量只能是redyellow或blue等等每一個類型的名稱都是由字母T開始這並非必須的但它是Delphi的慣例在區別類型名和標識符時非常有用類型說明可以是局部的也可以是全局的如果您把它放在implementation後面則表明對於庫單元來講它是全局的所有的事件處理過程和其他的過程函數都可以調用它如果類型是在過程中被說明的則是局部的離開這一過程該類型將失效
一般來講在過程和函數中任何類型說明都在變量說明之前而任何變量說明都在常量之前但是只要
從說明必須在過程與函數的標題之後而且在程序代碼之前即是有效的
From:http://tw.wingwit.com/Article/program/Delphi/201311/8500.html