?? 047.htm
字號:
<p>end;</p>
<p> </p>
<p></font><font face="宋體" lang="ZH-CN" size="3"> 現(xiàn)在你能注冊</font><font
face="Arial" size="3">TNewComponent</font><font face="宋體" lang="ZH-CN" size="3">。但是新部件與</font><font
face="Arial" size="3">TComponent</font><font face="宋體" lang="ZH-CN" size="3">沒什么不同,你只創(chuàng)建了自己部件的框架。</p>
<p> ⑶</font><font face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN"
size="3">注冊部件</p>
<p> 注冊部件是為了告訴</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">的哪一頁。</p>
<p> 為了注冊一個部件:</p>
<p> ①</font><font face="Arial" size="3"> </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">Register</font><font
face="宋體" lang="ZH-CN" size="3">過程。</font><font face="Arial" size="3">Register</font><font
face="宋體" lang="ZH-CN" size="3">不帶任何參數(shù),因此聲明很簡單:</p>
<p> </font><font face="Arial" size="3"></p>
<p>procedure Register;</p>
<p> </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">過程,因此不須要修改聲明。</p>
<p> ②</font><font face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN"
size="3">在庫單位的</font><font face="Arial" size="3">implementation</font><font
face="宋體" lang="ZH-CN" size="3">部件編寫</font><font face="Arial" size="3">Register</font><font
face="宋體" lang="ZH-CN" size="3">過程為每一個你想注冊的部件調(diào)用過程</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">帶兩個參數(shù):</font><font
face="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">的頁名和部件類型集。例如,注冊名為</font><font
face="Arial" size="3">TNewComponent</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">Samples</font><font face="宋體" lang="ZH-CN" size="3">頁,在程序中使用下列過程:</p>
<p> </font><font face="Arial" size="3"></p>
<p>procedure Register;</p>
<p>begin</p>
<p>RegisterComponents('Samples', [TNewComponent]);</p>
<p>end; </p>
<p> </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">上。</p>
<p> </font><font face="Arial" size="3">2. </font><font face="宋體" lang="ZH-CN"
size="3">使用</font><font face="Arial" size="3">Component Expert</font><font
face="宋體" lang="ZH-CN" size="3">(部件專家)</p>
<p> 你能使用</font><font face="Arial" size="3">Component Expert</font><font
face="宋體" lang="ZH-CN" size="3">創(chuàng)建新部件。使用</font><font face="Arial"
size="3">Component Expert</font><font face="宋體" lang="ZH-CN" size="3">簡化了創(chuàng)建新部件最初階段的工作,因為你只需描述三件事:</p>
<p> </font><font face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">新部件的名字</p>
<p> </font><font face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">祖先類型</p>
<p> </font><font face="Arial" size="3"> </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">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">頁名</p>
<p> </p>
<p> </font><font face="Arial" size="3"> Component Expert</font><font face="宋體"
lang="ZH-CN" size="3">執(zhí)行了手工方式的相同工作:</p>
<p> ●</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 face="Arial"
size="3"> </font><font face="宋體" lang="ZH-CN" size="3">繼承得到新部件對象</p>
<p> </font><font face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">●</font><font
face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">注冊部件</p>
<p> </p>
<p> 但</font><font face="Arial" size="3">Component Expert</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">File/New... </font><font face="宋體" lang="ZH-CN" size="3">,在</font><font
face="Arial" size="3">New Items</font><font face="宋體" lang="ZH-CN" size="3">對話框中選擇</font><font
face="Arial" size="3">Component</font><font face="宋體" lang="ZH-CN" size="3">,就打開</font><font
face="Arial" size="3">Component Expert</font><font face="宋體" lang="ZH-CN" size="3">對話框。 </p>
<p> 填完</font><font face="Arial" size="3">Component Expert</font><font
face="宋體" lang="ZH-CN" size="3">對話框的每一個域后,選擇</font><font
face="Arial" size="3">OK</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">uses</font><font face="宋體" lang="ZH-CN" size="3">語句。</p>
<p> 你應該立刻保存庫單元,并給予其有意義的名字。</p>
<p> </font><font face="Arial" size="3"></p>
<p>19.2.1.4. </font><font face="宋體" lang="ZH-CN" size="3">測試未安裝的部件</p>
<p> </p>
<p> 在將新部件安裝在</font><font face="Arial" size="3">Component Palette</font><font
face="宋體" lang="ZH-CN" size="3">之前就能測試部件運行時的動作。這對于調(diào)試新部件特別有用,而且還能用同樣的技術(shù)測試任意部件,無論該部件是否出現(xiàn)在</font><font
face="Arial" size="3">Component Palette</font><font face="宋體" lang="ZH-CN" size="3">上。</p>
<p> </font><font face="Arial" size="3"> </font><font face="宋體" lang="ZH-CN" size="3">從本質(zhì)上說,你通過模仿用戶將部件放置在窗體中的</font><font
face="Arial" size="3">Delphi</font><font face="宋體" lang="ZH-CN" size="3">的動作來測試一個未安裝的部件。</p>
<p> 可按下列步驟來測試未安裝的部件</p>
<p> </font><font face="Arial" size="3">1. </font><font face="宋體" lang="ZH-CN"
size="3">在窗體單元的</font><font face="Arial" size="3">uses</font><font
face="宋體" lang="ZH-CN" size="3">語句中加入部件所在單元的名字</font><font
face="Arial" size="3"></p>
<p>2. </font><font face="宋體" lang="ZH-CN" size="3">在窗體中增加一個對象域來表示部件</p>
<p> 這是自己增加部件和</font><font face="Arial" size="3">Delphi</font><font
face="宋體" lang="ZH-CN" size="3">增加部件的方法的主要不同點。</p>
<p> 你將對象域加在窗體類型聲明底部的</font><font face="Arial"
size="3">public</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">Delphi</font><font
face="宋體" lang="ZH-CN" size="3">管理的窗體類型的聲明的上部。在這一部分聲明的對象域?qū)⑾鄳诖鎯υ?lt;/font><font
face="Arial" size="3">DFM</font><font face="宋體" lang="ZH-CN" size="3">文件中。增加不在窗體中存在的部件名將產(chǎn)生</font><font
face="Arial" size="3">DFM</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">3.
</font><font face="宋體" lang="ZH-CN" size="3">附上窗體的</font><font face="Arial"
size="3">OnCreate</font><font face="宋體" lang="ZH-CN" size="3">事件處理過程</p>
<p> </font><font face="Arial" size="3">4. </font><font face="宋體" lang="ZH-CN"
size="3">在窗體的</font><font face="Arial" size="3">OnCreate</font><font face="宋體"
lang="ZH-CN" size="3">處理過程中構(gòu)造該部件</p>
<p> 當調(diào)用部件的構(gòu)造過程時,必須傳遞</font><font face="Arial"
size="3">Owner</font><font face="宋體" lang="ZH-CN" size="3">參數(shù)(由</font><font
face="Arial" size="3">Owner</font><font face="宋體" lang="ZH-CN" size="3">負責析構(gòu)該部件)一般說來總是將</font><font
face="Arial" size="3">Self</font><font face="宋體" lang="ZH-CN" size="3">作為</font><font
face="Arial" size="3">Owner</font><font face="宋體" lang="ZH-CN" size="3">的傳入?yún)?shù)。在</font><font
face="Arial" size="3">OnCreate</font><font face="宋體" lang="ZH-CN" size="3">中,</font><font
face="Arial" size="3">Self</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">
5. </font><font face="宋體" lang="ZH-CN" size="3">給</font><font face="Arial" size="3">Component</font><font
face="宋體" lang="ZH-CN" size="3">的</font><font face="Arial" size="3">Parent</font><font
face="宋體" lang="ZH-CN" size="3">屬性賦值</p>
<p> 設置</font><font face="Arial" size="3">Parent</font><font face="宋體"
lang="ZH-CN" size="3">屬性往往是構(gòu)造部件后要做的第一件事時。</font><font
face="Arial" size="3">Parent</font><font face="宋體" lang="ZH-CN" size="3">在形式上包含部件,一般來說</font><font
face="Arial" size="3">Parent</font><font face="宋體" lang="ZH-CN" size="3">是窗體或者</font><font
face="Arial" size="3">GoupBox</font><font face="宋體" lang="ZH-CN" size="3">、</font><font
face="Arial" size="3">Panel</font><font face="宋體" lang="ZH-CN" size="3">。通常給</font><font
face="Arial" size="3">Parent</font><font face="宋體" lang="ZH-CN" size="3">賦與</font><font
face="Arial" size="3">Self</font><font face="宋體" lang="ZH-CN" size="3">,即窗體。在設置部件的其它屬性之前最好先給</font><font
face="Arial" size="3">Parent</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">
6. </font><font face="宋體" lang="ZH-CN" size="3">按需要給部件的其它屬性賦值</p>
<p> 假設你想測試名為</font><font face="Arial" size="3">TNewComponent</font><font
face="宋體" lang="ZH-CN" size="3">類型的新部件,庫單元名為</font><font
face="Arial" size="3">NewTest</font><font face="宋體" lang="ZH-CN" size="3">。窗體庫單元應該是這樣的;</p>
<p> </p>
<p></font><font face="Arial" size="3">unit Unitl;</p>
<p> </p>
<p>interface</p>
<p> </p>
<p>uses SysUtils, Windows, Messages, Classes, Grophics, Controls, Forms, Dialogs, </p>
<p>Newtest; </p>
<p>type</p>
<p>Tforml = class(TForm)</p>
<p>procedure FormCreate(Sender: TObject);</p>
<p>private</p>
<p>{ private</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>public</p>
<p>{ public</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>NewComponent: TNewComponent;</p>
<p>end; </p>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -