程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 第十九章-Delphi自定義部件開發(三)(2)

第十九章-Delphi自定義部件開發(三)(2)

編輯:Delphi

19.2.2.4 注冊部件

編寫部件及其屬性、方法和事件只是部件創建過程的一部分。盡管部件具有這些特征就可用,但部件真正功能強大的是在設計時操作它們的能力。

使部件在設計時可用需要經過如下幾步:

● 用Delphi注冊部件

● 增加選擇板位圖

● 提供有關屬性和事件的幫助

● 存貯和讀取屬性

1. 用Delphi注冊部件

為了讓Delphi識別自定義部件,並將它們放置於Component Palette上,你必須注冊每一個部件。

注冊一個部件要在部件所在單元裡加入Register方法,這包括兩個方面的內容:

● 聲明注冊過程

● 實現注冊過程

一旦安裝了注冊過程,就可以將部件安裝在選擇板上。

注冊過程要在部件所在單元中寫一個過程,該過程必須以Register命名。Register必須出現在庫單元的interface部分,這樣Delphi就能定位它。在Register過程中,可以為每個部件調用過程RegisterComponents。

下面的代碼演示了建立和注冊部件的概略方法:

unit MyBtns;

interface

type

… { 聲明自定義部件 }

procedure Register;

Implementation

procedure Register;

begin

… { 注冊部件 }

end;

end.

在Register過程中,必須注冊每一個要加入Component Palette的部件,如果庫單元包含若干部件,就要將它們一次性注冊。

注冊一個部件時,為部件調用RegisterComponents過程。RegisterComponents告訴Delphi兩件有關所注冊的部件的事::

● 要注冊部件所在的Component Palette的頁名

● 要安裝的部件的名字

選擇板的頁名是個字符串。如果你所給名字的頁不存在,Delphi就用該名字創建新的頁。

下面的Register過程注冊了一個名為TMyComponent的部件,並將其放在名為“Miscellaneous”的Component Palette頁上。

procedure Register;

begin

RegisterComponents('Miscellaneous', [TFirst, TSecond]);

end;

也可以在相同的頁上,或者在不同的頁上,一次注冊多個部件:

procedure Register;

begin

RegisterComponents('Miscellaneous', [TFirst, TSecond]);

RegisterComponents('Assorted', [TThird]);

end;

2. 增加Component Palette上的位圖

每個部件都需要一個位圖來在Component Palette上代表它。如果安裝時沒有描述自己的位圖,則Delphi會自動套用缺省位圖。

因為選擇板位圖只有在設計時需要,所以沒有必要將它們編譯進庫單元。而是將它們提供在與庫單名相同的Windows資源文件中,擴展名為.DCR。用Delphi的位圖編輯器來生成資源文件,每個位圖邊長24個象素。

為每個要安裝的庫單元提供一個選擇板位圖文件,在每個文件中為每個要注冊的部件提供一個位圖。位圖圖象名與部件名相同,將文件放在與庫單元相同的目錄中,這樣在安裝部件時Dephi就能發現位圖。

例如,如果你在ToolBox單元中創建一個名為TMyControl的部件,就需要建立名為TOOLBOX.DCR的資源文件,文件中包含名為TMyControl的位圖。

3. 提供有關屬性和事件的幫助

當在窗體中選擇一個部件或在Object Inspector中選擇事件或屬性時,能夠按F1得到有關這一項的幫助。如果創建了相應的Help文件的話,自定義部件的用戶能得到有關你的部件的相應的文檔。

因為Delph使用了特殊的Help引擎支持跨多個Help文件處理主題搜索,所以你能提供關於自定義部件的小的Help文件,用戶不需要額外的步驟就能找到你的文檔。你的Help成了Delphi Help系統的一部分。

要給用戶提供幫助,要理解下列兩方面:

● Delphi怎樣處理HELP請求

● 將HELP插入Delphi

⑴ Delphi怎樣處理HELP請求

Delphi基於關鍵詞查詢HELP請求。就是說,當用戶在窗體設計窗口的已選部件上按F1鍵時,Delpdi將部件的名字轉換成一個關鍵詞,然後調用Windows Help引擎查找那個關鍵詞的幫助主題。關鍵詞是Windows Help系統的標准部分。實際上 ,WinHelp使用Help中的關鍵詞產生Search對話框中的列表。因為用於上下文敏感搜索中的關鍵詞不是實際供用戶讀的,所以要輸入關鍵詞的替代詞。

例如,一個查找名為TSomething的部件的詳細信息的用戶可能打開WinHelp的Search對話框並輸入TSomething。但不會使用用於窗體設計窗口的上下文查找的替代形式class-TSomething。因此,這個特殊的關鍵詞Class-TSomething對用戶是不可見的,以免弄亂了搜索列表。

⑵ 將Help插入Delphi

Delphi提供了創建和插入Windows Help文件的工具,包括Windows Help編譯器HC.EXE。為自定義部件建立Help文件的機制與建立任何Help文件沒什麼不同,但需要遵循一些約定以與庫中其它Help兼容。

保持兼容性的方法如下:

● 建立Help文件

● 增加特殊的注腳

● 建立關鍵詞文件

● 插入Help索引

當你為自定義部件建立完Help,有下列幾個文件:

● 編譯過的Help(.HLP)文件

● Help關鍵詞(.KWF)文件

● 一個或多個Help源文件(.RTF)

● Help工程文件(.HLJ)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved