19.2.2.4 注冊(cè)部件
編寫部件及其屬性、方法和事件只是部件創(chuàng)建過程的一部分。盡管部件具有這些特征就可用,但部件真正功能強(qiáng)大的是在設(shè)計(jì)時(shí)操作它們的能力。
使部件在設(shè)計(jì)時(shí)可用需要經(jīng)過如下幾步:
● 用Delphi注冊(cè)部件
● 增加選擇板位圖
● 提供有關(guān)屬性和事件的幫助
● 存貯和讀取屬性
1. 用Delphi注冊(cè)部件
為了讓Delphi識(shí)別自定義部件,并將它們放置于Component Palette上,你必須注冊(cè)每一個(gè)部件。
注冊(cè)一個(gè)部件要在部件所在單元里加入Register方法,這包括兩個(gè)方面的內(nèi)容:
● 聲明注冊(cè)過程
● 實(shí)現(xiàn)注冊(cè)過程
一旦安裝了注冊(cè)過程,就可以將部件安裝在選擇板上。
注冊(cè)過程要在部件所在單元中寫一個(gè)過程,該過程必須以Register命名。Register必須出現(xiàn)在庫單元的interface部分,這樣Delphi就能定位它。在Register過程中,可以為每個(gè)部件調(diào)用過程RegisterComponents。
下面的代碼演示了建立和注冊(cè)部件的概略方法:
unit MyBtns;
interface
type
… { 聲明自定義部件 }
procedure Register;
Implementation
procedure Register;
begin
… { 注冊(cè)部件 }
end;
end.
在Register過程中,必須注冊(cè)每一個(gè)要加入Component Palette的部件,如果庫單元包含若干部件,就要將它們一次性注冊(cè)。
注冊(cè)一個(gè)部件時(shí),為部件調(diào)用RegisterComponents過程。RegisterComponents告訴Delphi兩件有關(guān)所注冊(cè)的部件的事::
● 要注冊(cè)部件所在的Component Palette的頁名
● 要安裝的部件的名字
選擇板的頁名是個(gè)字符串。如果你所給名字的頁不存在,Delphi就用該名字創(chuàng)建新的頁。
下面的Register過程注冊(cè)了一個(gè)名為TMyComponent的部件,并將其放在名為“Miscellaneous”的Component Palette頁上。
procedure Register;
begin
RegisterComponents('Miscellaneous', [TFirst, TSecond]);
end;
也可以在相同的頁上,或者在不同的頁上,一次注冊(cè)多個(gè)部件:
procedure Register;
begin
RegisterComponents('Miscellaneous', [TFirst, TSecond]);
RegisterComponents('Assorted', [TThird]);
end;
2. 增加Component Palette上的位圖
每個(gè)部件都需要一個(gè)位圖來在Component Palette上代表它。如果安裝時(shí)沒有描述自己的位圖,則Delphi會(huì)自動(dòng)套用缺省位圖。
因?yàn)檫x擇板位圖只有在設(shè)計(jì)時(shí)需要,所以沒有必要將它們編譯進(jìn)庫單元。而是將它們提供在與庫單名相同的Windows資源文件中,擴(kuò)展名為.DCR。用Delphi的位圖編輯器來生成資源文件,每個(gè)位圖邊長24個(gè)象素。
為每個(gè)要安裝的庫單元提供一個(gè)選擇板位圖文件,在每個(gè)文件中為每個(gè)要注冊(cè)的部件提供一個(gè)位圖。位圖圖象名與部件名相同,將文件放在與庫單元相同的目錄中,這樣在安裝部件時(shí)Dephi就能發(fā)現(xiàn)位圖。
例如,如果你在ToolBox單元中創(chuàng)建一個(gè)名為TMyControl的部件,就需要建立名為TOOLBOX.DCR的資源文件,文件中包含名為TMyControl的位圖。
相關(guān)推薦:
2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題 預(yù)告:名師解析2010年9月計(jì)算機(jī)等級(jí)考試試題答案 2010年9月計(jì)算機(jī)等級(jí)考試成績(jī)查詢時(shí)間及入口 2010年9月計(jì)算機(jī)等考成績(jī)查詢短信免費(fèi)提醒開通