2.1.7 關(guān)于作用范圍
2.1.7.1 標(biāo)識(shí)符的作用范圍
一個(gè)變量、常量、方法、類型或其他標(biāo)識(shí)符的范圍定義了這個(gè)標(biāo)識(shí)符的活動(dòng)區(qū)域。對(duì)于說明這個(gè)標(biāo)識(shí)符的最小程序模塊而言,此標(biāo)識(shí)符是局部的。當(dāng)您的應(yīng)用程序在說明一個(gè)標(biāo)識(shí)符的程序模塊外執(zhí)行時(shí),該標(biāo)識(shí)符就不在此范圍內(nèi)。這意味著此時(shí)執(zhí)行的程序無法訪問這個(gè)標(biāo)識(shí)符,只有當(dāng)程序再度進(jìn)入說明這個(gè)標(biāo)識(shí)符的程序模塊時(shí),才可以訪問它。
下面的示意圖表示一個(gè)含有兩個(gè)庫單元的工程,每個(gè)庫單元中又各有三個(gè)過程或事件處理過程。
2.1.7.2 訪問其他程序模塊中的說明
您可以在當(dāng)前的程序模塊中訪問其他程序模塊中的說明。例如您在庫單元中編寫一個(gè)事件處理過程來計(jì)算利率,則其他的庫單元可以訪問這個(gè)事件處理過程。要訪問不在當(dāng)前庫單元中的說明,應(yīng)在這個(gè)說明之前加上其他應(yīng)用程序的名稱和一個(gè)點(diǎn)號(hào)(.)。例如,在庫單元Unit1中有事件處理過程CalculateInterest過程,現(xiàn)在您想在庫單元Unit2中調(diào)用這一過程,則可以在Unit2的uses子句中加入U(xiǎn)nit1,并使用下面的說明:
Unit1.CalculateInterest(PrincipalInterestRate : Double);
應(yīng)用程序的代碼不能在一個(gè)模塊外訪問它說明的變量。事實(shí)上,當(dāng)程序執(zhí)行跳出一個(gè)模塊后,這些變量就不存在于內(nèi)存中了。這一點(diǎn)對(duì)于任何標(biāo)識(shí)符都是一樣的,不管事件處理過程、過程、函數(shù)還是方法,都具有這一性質(zhì)。這樣的標(biāo)識(shí)符稱為局部變量。
2.1.7.3 按照作用范圍說明標(biāo)識(shí)符
您可以在應(yīng)用程序的不同地方說明一個(gè)標(biāo)識(shí)符,而只需保證它們的有效范圍不同即可。編譯器會(huì)自動(dòng)訪問最靠近當(dāng)前范圍的標(biāo)識(shí)符。
庫單元的全局變量一般可以說明在保留字implementation后面。例如,下面的例程實(shí)現(xiàn)將兩個(gè)編輯框中的整數(shù)相加,顯示在第三個(gè)編輯框中。用到了一個(gè)整形的全局變量Count:
…implememntation
var
Count : Integer;
procedure TForm1.AddClick(Sender:TObject);
var
FirstNumber,SecondNumber:Integer;
begin
Count := Count + 1;
Counter.Text := IntToStr(Count);
FirstNumber := StrToInt(Edit1.Text);
SecondNumber := StrToInt(Edit2.Text);
Edit3.Text := IntToStr(FirstNumber+SecondNumber);
end;
…
為了實(shí)現(xiàn)每按動(dòng)一次按鈕Count增加一次,必須對(duì)全程變量Count進(jìn)行初始化處理。在程序庫單元的結(jié)尾處,最后一個(gè)end.保留字之前,加入保留字initialization和初始化Count的代碼:
…
initialization
Count := 0;
這樣當(dāng)事件處理過程AddClick被觸發(fā)時(shí),Count就會(huì)被增加一次,以表征計(jì)算次數(shù)。如果用面向?qū)ο缶幊,則Count可以說明成窗體的一個(gè)域,這在下一節(jié)中將有講述。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |