?? 049.htm
字號:
<p>type</p><p>TMyComponent=class(TControl)</p><p></font><font face="宋體" lang="ZH-CN" size="3">…</font><font face="Arial" size="3"></p><p>protected</p><p>procedure CMChangeColor(var Message:TMessage);</p><p>message CM_CHANGECOLOR;</p><p>end:</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>procedure TMyComponent.CMChangeColor(var Message: TMessage);</p><p>begin</p><p>color := Message lParam;</p><p>inherited;</p><p>end;</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>19.2.2.4 </font><font face="宋體" lang="ZH-CN" size="3">注冊部件</p><p> </p><p> 編寫部件及其屬性、方法和事件只是部件創(chuàng)建過程的一部分。盡管部件具有這些特征就可用,但部件真正功能強(qiáng)大的是在設(shè)計(jì)時(shí)操作它們的能力。</p><p> 使部件在設(shè)計(jì)時(shí)可用需要經(jīng)過如下幾步:</p><p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">用</font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">注冊部件</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">增加選擇板位圖</font><font face="Arial"size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">提供有關(guān)屬性和事件的幫助</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">存貯和讀取屬性</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>1. </font><font face="宋體" lang="ZH-CN" size="3">用</font><font face="Arial"size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">注冊部件</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">為了讓</font><font face="Arial"size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">識別自定義部件,并將它們放置于</font><fontface="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">上,你必須注冊每一個(gè)部件。</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">注冊一個(gè)部件要在部件所在單元里加入</font><fontface="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">方法,這包括兩個(gè)方面的內(nèi)容:</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">聲明注冊過程</font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">實(shí)現(xiàn)注冊過程</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">一旦安裝了注冊過程,就可以將部件安裝在選擇板上。</p><p> 注冊過程要在部件所在單元中寫一個(gè)過程,該過程必須以</font><fontface="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">命名。</font><fontface="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">必須出現(xiàn)在庫單元的</font><fontface="Arial" size="3">interface</font><font face="宋體" lang="ZH-CN" size="3">部分,這樣</font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">就能定位它。在</font><fontface="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">過程中,可以為每個(gè)部件調(diào)用過程</font><fontface="Arial" size="3">RegisterComponents</font><font face="宋體" lang="ZH-CN" size="3">。</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">下面的代碼演示了建立和注冊部件的概略方法:</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>unit MyBtns;</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>interface</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>type</p><p></font><font face="宋體" lang="ZH-CN" size="3">…</font><font size="3"> </font><fontface="Arial" size="3">{ </font><font face="宋體" lang="ZH-CN" size="3">聲明自定義部件</font><fontsize="3"> </font><font face="Arial" size="3">}</p><p>procedure Register;</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>Implementation</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>procedure Register;</p><p>begin</p><p></font><font face="宋體" lang="ZH-CN" size="3">…</font><font size="3"> </font><fontface="Arial" size="3">{ </font><font face="宋體" lang="ZH-CN" size="3">注冊部件</font><fontsize="3"> </font><font face="Arial" size="3">}</p><p>end;</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>end.</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">在</font><font face="Arial" size="3">Register</font><fontface="宋體" lang="ZH-CN" size="3">過程中,必須注冊每一個(gè)要加入</font><fontface="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">的部件,如果庫單元包含若干部件,就要將它們一次性注冊。</p><p> 注冊一個(gè)部件時(shí),為部件調(diào)用</font><font face="Arial" size="3">RegisterComponents</font><fontface="宋體" lang="ZH-CN" size="3">過程。</font><font face="Arial" size="3">RegisterComponents</font><fontface="宋體" lang="ZH-CN" size="3">告訴</font><font face="Arial" size="3">Delphi</font><fontface="宋體" lang="ZH-CN" size="3">兩件有關(guān)所注冊的部件的事</font><fontface="Arial" size="3">:</font><font face="宋體" lang="ZH-CN" size="3">:</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">要注冊部件所在的</font><font face="Arial"size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">的頁名</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">要安裝的部件的名字</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">選擇板的頁名是個(gè)字符串。如果你所給名字的頁不存在,</font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">就用該名字創(chuàng)建新的頁。</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">下面的</font><font face="Arial"size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">過程注冊了一個(gè)名為</font><fontface="Arial" size="3">TMyComponent</font><font face="宋體" lang="ZH-CN" size="3">的部件,并將其放在名為“</font><fontface="Arial" size="3">Miscellaneous</font><font face="宋體" lang="ZH-CN" size="3">”的</font><fontface="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">頁上。</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>procedure Register;</p><p>begin</p><p>RegisterComponents('Miscellaneous', [TFirst, TSecond]);</p><p>end;</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">也可以在相同的頁上,或者在不同的頁上,一次注冊多個(gè)部件:</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>procedure Register;</p><p>begin</p><p>RegisterComponents('Miscellaneous', [TFirst, TSecond]);</p><p>RegisterComponents('Assorted', [TThird]);</p><p>end;</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p>2. </font><font face="宋體" lang="ZH-CN" size="3">增加</font><font face="Arial"size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">上的位圖</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">每個(gè)部件都需要一個(gè)位圖來在</font><fontface="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">上代表它。如果安裝時(shí)沒有描述自己的位圖,則</font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">會自動套用缺省位圖。</p><p> 因?yàn)檫x擇板位圖只有在設(shè)計(jì)時(shí)需要,所以沒有必要將它們編譯進(jìn)庫單元。而是將它們提供在與庫單名相同的</font><fontface="Arial" size="3">Windows</font><font face="宋體" lang="ZH-CN" size="3">資源文件中,擴(kuò)展名為</font><fontface="Arial" size="3">.DCR</font><font face="宋體" lang="ZH-CN" size="3">。用</font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">的位圖編輯器來生成資源文件,每個(gè)位圖邊長</font><fontface="Arial" size="3">24</font><font face="宋體" lang="ZH-CN" size="3">個(gè)象素。</p><p> 為每個(gè)要安裝的庫單元提供一個(gè)選擇板位圖文件,在每個(gè)文件中為每個(gè)要注冊的部件提供一個(gè)位圖。位圖圖象名與部件名相同,將文件放在與庫單元相同的目錄中,這樣在安裝部件時(shí)</font><fontface="Arial" size="3">Dephi</font><font face="宋體" lang="ZH-CN" size="3">就能發(fā)現(xiàn)位圖。</p><p> 例如,如果你在</font><font face="Arial" size="3">ToolBox</font><fontface="宋體" lang="ZH-CN" size="3">單元中創(chuàng)建一個(gè)名為</font><font face="Arial"size="3">TMyControl</font><font face="宋體" lang="ZH-CN" size="3">的部件,就需要建立名為</font><fontface="Arial" size="3">TOOLBOX.DCR</font><font face="宋體" lang="ZH-CN" size="3">的資源文件,文件中包含名為</font><fontface="Arial" size="3">TMyControl</font><font face="宋體" lang="ZH-CN" size="3">的位圖。</p><p> </font><font face="Arial" size="3">3. </font><font face="宋體" lang="ZH-CN"size="3">提供有關(guān)屬性和事件的幫助</font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">當(dāng)在窗體中選擇一個(gè)部件或在</font><fontface="Arial" size="3">Object Inspector</font><font face="宋體" lang="ZH-CN" size="3">中選擇事件或?qū)傩詴r(shí),能夠按</font><fontface="Arial" size="3">F1</font><font face="宋體" lang="ZH-CN" size="3">得到有關(guān)這一項(xiàng)的幫助。如果創(chuàng)建了相應(yīng)的</font><fontface="Arial" size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">文件的話,自定義部件的用戶能得到有關(guān)你的部件的相應(yīng)的文檔。</p><p> 因?yàn)?lt;/font><font face="Arial" size="3">Delph</font><font face="宋體"lang="ZH-CN" size="3">使用了特殊的</font><font face="Arial" size="3">Help</font><fontface="宋體" lang="ZH-CN" size="3">引擎支持跨多個(gè)</font><font face="Arial"size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">文件處理主題搜索,所以你能提供關(guān)于自定義部件的小的</font><fontface="Arial" size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">文件,用戶不需要額外的步驟就能找到你的文檔。你的</font><fontface="Arial" size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">成了</font><fontface="Arial" size="3">Delphi Help</font><font face="宋體" lang="ZH-CN" size="3">系統(tǒng)的一部分。</p><p> 要給用戶提供幫助,要理解下列兩方面</font><font face="Arial"size="3">:</p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">怎樣處理</font><fontface="Arial" size="3">HELP</font><font face="宋體" lang="ZH-CN" size="3">請求</font><fontface="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><fontface="宋體" lang="ZH-CN" size="3">將</font><font face="Arial" size="3">HELP</font><fontface="宋體" lang="ZH-CN" size="3">插入</font><font face="Arial" size="3">Delphi</p><p></font><font size="3"> </font><font face="Arial" size="3"></p><p></font><font face="宋體" lang="ZH-CN" size="3">⑴</font><font size="3"> </font><fontface="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">怎樣處理</font><fontface="Arial" size="3">HELP</font><font face="宋體" lang="ZH-CN" size="3">請求</font><fontface="Arial" size="3"></p><p>Delphi</font><font face="宋體" lang="ZH-CN" size="3">基于關(guān)鍵詞查詢</font><fontface="Arial" size="3">HELP</font><font face="宋體" lang="ZH-CN" size="3">請求。就是說,當(dāng)用戶在窗體設(shè)計(jì)窗口的已選部件上按</font><fontface="Arial" size="3">F1</font><font face="宋體" lang="ZH-CN" size="3">鍵時(shí),</font><font
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -