?? 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> 編寫部件及其屬性、方法和事件只是部件創建過程的一部分。盡管部件具有這些特征就可用,但部件真正功能強大的是在設計時操作它們的能力。</p>
<p> 使部件在設計時可用需要經過如下幾步:</p>
<p> ●</font><font size="3"> </font><font face="宋體" lang="ZH-CN" size="3">用</font><font
face="Arial" size="3">Delphi</font><font face="宋體" 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><font
face="宋體" 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><font
face="宋體" 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><font
face="宋體" 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><font
face="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><font
face="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" 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><font face="宋體" 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><font
face="宋體" 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><font
face="宋體" 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">一旦安裝了注冊過程,就可以將部件安裝在選擇板上。</p>
<p> 注冊過程要在部件所在單元中寫一個過程,該過程必須以</font><font
face="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">命名。</font><font
face="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">必須出現在庫單元的</font><font
face="Arial" size="3">interface</font><font face="宋體" lang="ZH-CN" size="3">部分,這樣</font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">就能定位它。在</font><font
face="Arial" size="3">Register</font><font face="宋體" lang="ZH-CN" size="3">過程中,可以為每個部件調用過程</font><font
face="Arial" size="3">RegisterComponents</font><font face="宋體" lang="ZH-CN" size="3">。</font><font
face="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><font
face="Arial" size="3">{ </font><font face="宋體" lang="ZH-CN" size="3">聲明自定義部件</font><font
size="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><font
face="Arial" size="3">{ </font><font face="宋體" lang="ZH-CN" size="3">注冊部件</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>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><font
face="宋體" lang="ZH-CN" size="3">過程中,必須注冊每一個要加入</font><font
face="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">的部件,如果庫單元包含若干部件,就要將它們一次性注冊。</p>
<p> 注冊一個部件時,為部件調用</font><font face="Arial" size="3">RegisterComponents</font><font
face="宋體" lang="ZH-CN" size="3">過程。</font><font face="Arial" size="3">RegisterComponents</font><font
face="宋體" lang="ZH-CN" size="3">告訴</font><font face="Arial" size="3">Delphi</font><font
face="宋體" lang="ZH-CN" size="3">兩件有關所注冊的部件的事</font><font
face="Arial" size="3">:</font><font face="宋體" 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><font
face="宋體" lang="ZH-CN" size="3">要注冊部件所在的</font><font face="Arial"
size="3">Component Palette</font><font face="宋體" 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><font
face="宋體" 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">選擇板的頁名是個字符串。如果你所給名字的頁不存在,</font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" 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><font face="宋體" lang="ZH-CN" size="3">過程注冊了一個名為</font><font
face="Arial" size="3">TMyComponent</font><font face="宋體" lang="ZH-CN" size="3">的部件,并將其放在名為“</font><font
face="Arial" size="3">Miscellaneous</font><font face="宋體" lang="ZH-CN" size="3">”的</font><font
face="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">也可以在相同的頁上,或者在不同的頁上,一次注冊多個部件:</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><font
face="Arial" size="3"></p>
<p></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><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">會自動套用缺省位圖。</p>
<p> 因為選擇板位圖只有在設計時需要,所以沒有必要將它們編譯進庫單元。而是將它們提供在與庫單名相同的</font><font
face="Arial" size="3">Windows</font><font face="宋體" lang="ZH-CN" size="3">資源文件中,擴展名為</font><font
face="Arial" size="3">.DCR</font><font face="宋體" lang="ZH-CN" size="3">。用</font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">的位圖編輯器來生成資源文件,每個位圖邊長</font><font
face="Arial" size="3">24</font><font face="宋體" lang="ZH-CN" size="3">個象素。</p>
<p> 為每個要安裝的庫單元提供一個選擇板位圖文件,在每個文件中為每個要注冊的部件提供一個位圖。位圖圖象名與部件名相同,將文件放在與庫單元相同的目錄中,這樣在安裝部件時</font><font
face="Arial" size="3">Dephi</font><font face="宋體" lang="ZH-CN" size="3">就能發現位圖。</p>
<p> 例如,如果你在</font><font face="Arial" size="3">ToolBox</font><font
face="宋體" lang="ZH-CN" size="3">單元中創建一個名為</font><font face="Arial"
size="3">TMyControl</font><font face="宋體" lang="ZH-CN" size="3">的部件,就需要建立名為</font><font
face="Arial" size="3">TOOLBOX.DCR</font><font face="宋體" lang="ZH-CN" size="3">的資源文件,文件中包含名為</font><font
face="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">提供有關屬性和事件的幫助</font><font face="Arial" size="3"></p>
<p></font><font face="宋體" lang="ZH-CN" size="3">當在窗體中選擇一個部件或在</font><font
face="Arial" size="3">Object Inspector</font><font face="宋體" lang="ZH-CN" size="3">中選擇事件或屬性時,能夠按</font><font
face="Arial" size="3">F1</font><font face="宋體" lang="ZH-CN" size="3">得到有關這一項的幫助。如果創建了相應的</font><font
face="Arial" size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">文件的話,自定義部件的用戶能得到有關你的部件的相應的文檔。</p>
<p> 因為</font><font face="Arial" size="3">Delph</font><font face="宋體"
lang="ZH-CN" size="3">使用了特殊的</font><font face="Arial" size="3">Help</font><font
face="宋體" lang="ZH-CN" size="3">引擎支持跨多個</font><font face="Arial"
size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">文件處理主題搜索,所以你能提供關于自定義部件的小的</font><font
face="Arial" size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">文件,用戶不需要額外的步驟就能找到你的文檔。你的</font><font
face="Arial" size="3">Help</font><font face="宋體" lang="ZH-CN" size="3">成了</font><font
face="Arial" size="3">Delphi Help</font><font face="宋體" lang="ZH-CN" size="3">系統的一部分。</p>
<p> 要給用戶提供幫助,要理解下列兩方面</font><font face="Arial"
size="3">:</p>
<p></font><font face="宋體" lang="ZH-CN" size="3">●</font><font size="3"> </font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">怎樣處理</font><font
face="Arial" size="3">HELP</font><font face="宋體" 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><font
face="宋體" lang="ZH-CN" size="3">將</font><font face="Arial" size="3">HELP</font><font
face="宋體" 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><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">怎樣處理</font><font
face="Arial" size="3">HELP</font><font face="宋體" lang="ZH-CN" size="3">請求</font><font
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -