11.1.2.4 編譯幫助工程文件
有兩種編譯器可以編譯幫助工程文件:HCP.EXE ,H31.EXE。兩種編譯器編譯的文件不能在Winddow3.0中使用,但能在Windows 3.1中使用。其中HCP.EXE是保護(hù)模式“編譯器”,它能更好的使用內(nèi)存。必須在Windows的Dos窗口中使用HCP.EXE。
編譯前要注意兩個(gè)問(wèn)題:
1. 所有源文件必須以RTF格式保存;
2. 下面的文件必須在同一個(gè)目錄下
● 所有的.RTF文件
● 幫助編譯器(HCP.EXE,HC31.EXE)
● 編譯器錯(cuò)誤信息源文件(HCD.ERR,HC1.ERR)
● 幫助工程文件(.HPF)
● 任何引用位圖或SHED的文件(.BMP.SHG)
如果以上文件不在同一目錄中,必須在工程文件中定義相應(yīng)的路徑。
編譯要在Dos環(huán)境中進(jìn)行,命令格式:
Help_Compiler_rootname project_File_rootname
Help_Compiler_rootname是不帶擴(kuò)展名的編譯器名字。project_file_rootname是不
帶擴(kuò)展名的幫助工程文件名,如:
HCP MYHELP
11.2 Delphi應(yīng)用程序的Help編程
Delphi應(yīng)用程序能夠方便地應(yīng)用幫助系統(tǒng)。程序可以動(dòng)態(tài)地運(yùn)行幫助系統(tǒng)。 對(duì)話框可以與幫助系統(tǒng)相聯(lián)。
11.2.1 定義應(yīng)用程序的幫助文件
要在應(yīng)用程序中使用幫助系統(tǒng),必須有相應(yīng)的幫助文件。程序可以編寫(xiě)自己的幫助文件, 也可以使用已有的幫助文件。 另外,要為應(yīng)用程序定義幫助文件以便在用戶需要幫助時(shí)應(yīng)用程序能打開(kāi)相應(yīng)的幫助文件。
在 Delphi 集成開(kāi)發(fā)環(huán)境中選擇“Options | Project” 菜單項(xiàng), 系統(tǒng)彈出工程選擇對(duì)話框, 再選擇Application Options頁(yè)面,在輔助文件中輸入幫助文件名。
所有的應(yīng)用程序都是TApplication的派生類。TApplication有三種方法調(diào)用在線幫助系統(tǒng)。
HelpContext方法可調(diào)用WinHelp(關(guān)于Winhelp的內(nèi)容見(jiàn)上節(jié))。它把HelpFile 中的文件名和一個(gè)文本代碼傳遞給WinHelp。HelpFile是TApplication的字符串類型的屬性,專門用來(lái)存放Help文件的。如果HelpFile屬性是空字符,HelpContext返回假值,其它情況均返回真值。
下面的例子使用窗體上的一個(gè)按鈕,當(dāng)用戶單擊按鈕,屏幕出現(xiàn)DATA.HLP文件中714號(hào)主題內(nèi)容。
procedure TForm2.Bin1Click(Snder : TObject)
begin
Application.HelpFile := DATAHLP;
Application.HelpContext(714);
end;
HelpJump方法可調(diào)用WinHelp。它傳遞HelpFile屬性中的文件名和幫助文件的內(nèi)容字符串(詳見(jiàn)11.1節(jié))。內(nèi)容字符串是幫助文件中唯一辨識(shí)幫助主題的字符串。如果HelpFile 屬性是空字符,HelpFJump返回假值,其它情況均返回真值。
下面的例子使用了窗體上的一個(gè)按鈕。當(dāng)用戶單擊按鈕, 幫助系統(tǒng)調(diào)出了 DELPH2.HLP文件中的Default屬性。因?yàn)镈efault屬性的內(nèi)容字符串是VclDefaultProperty。
procedure TForm1.Tbn|Click(Sender : TObject)
begin
Application.HelpFile := 'DELPHI.HLP';
Application.HelpJump ('VclDefaultProperty');
end
HelpCommand方法能快速訪問(wèn)WinHelp函數(shù)中的各種命令。根據(jù)這些命令WinHelp執(zhí)行不同的動(dòng)作。表11.2是WinHelp函數(shù)的有關(guān)信息。
BOOL WinHelp(hwd,LpszHelpFile,fuCommand,dwData)
表11.2 WinHelp的參數(shù)及含義
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
參數(shù) 類型 描 述
───────────────────────────────
hwnd HWND 請(qǐng)求幫助的窗口
LpszHelpFile LPSTK 待顯示的幫助文件的文件名
fuCommand UNIT 請(qǐng)求的幫助類型
dwData DWORD 幫助所需的描述表或關(guān)鍵字
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HelpCOmmand向WinHelp傳遞fuCommand和dwData,fuCommand 是幫助類型可為表11.3中的列值之一。
表11.3 fuCommand的取值及含義
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
值 含 義
───────────────────────────────
HELP_LONTEXT 顯示dwData指定描述長(zhǎng)的幫助信息
HELP_CONTENTS 顯示幫助的內(nèi)容主題
HELP_SET_LONTENTS 如果dwData是Orol04則在一個(gè)彈出
式窗口中顯示Help主題
HELP_HELP PONHELP 顯示Help應(yīng)用程序的自身幫助,函
數(shù)忽略lpszHelpFile和dwData參數(shù)
HELP_INDEX 顯示幫助文件的索引
HELP_KEY 顯示dwData指定的關(guān)鍵字的幫助
HELP_MULTIKEY 顯示一個(gè)關(guān)鍵字的幫助,該關(guān)鍵字
在一個(gè)可變關(guān)鍵字表中
HELP_QUIT 向Help應(yīng)用程序報(bào)告文件不再使用
HELP_SETNDEX 把dwData指定的描述符作為幫助文
件的當(dāng)前索引
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
dwData參數(shù)的含義依賴于fuCommand的設(shè)置,如果fuCommand為HELP_CONTEXT,dwData為一個(gè)32 位的無(wú)符號(hào)整數(shù),它包含一個(gè)描述表標(biāo)識(shí)號(hào):如果 fuCommand 為 HELP_KEY,dwData 則為一個(gè)指定長(zhǎng)指針,所指的字符串是幫助的關(guān)鍵字。 如果 fuCommand 為HELPMULLTIKEY,dwData則指向一個(gè)MULTIKEYHELP數(shù)據(jù)結(jié)構(gòu)的長(zhǎng)指針。
下面的例子使用了窗體中的按鈕。當(dāng)用戶單擊按鈕幫助系統(tǒng)將顯示指定文件的幫助內(nèi)容主題。
procedure TForm1.Bin1Click(Sender : TObject)
begin
Application.HelpFile := 'MyHlep.HLP'
Application.HelpCommand(HELP_CONTENTS,0);
end;
TApplication部件的OnHelp事件響應(yīng)幫助事件。 當(dāng)應(yīng)用程序接收到一個(gè)所需的幫助
時(shí),發(fā)生OnHelp事件。使用OnHelp事件可以在需要幫助時(shí)定義一些特殊過(guò)程。 以下的例子改變了應(yīng)用程序的幫助文件,AppHelp函數(shù)用來(lái)處理OnCreate事件。
function TForm1.AppHelp(Command.Word;Data : lontint) : Boolean
begin
if OpenDialog1.Exeeute then
Application HelpFile := OpenDialog1.FileName;
end;
11.2.2 通用對(duì)話框中使用幫助系統(tǒng)
Delphi通用對(duì)話框中都能顯示一個(gè)幫助按鈕。如果程序顯示了對(duì)話框中的幫助按鈕,應(yīng)該確保應(yīng)用程序的幫助文件中有相應(yīng)的主題。
在通用對(duì)話框中使用幫助系統(tǒng),要做到以下三點(diǎn):
1. 把對(duì)話框的Option|SHOWHelp屬性設(shè)置成true,這樣在程序運(yùn)行時(shí)將出現(xiàn)幫助按鈕。 ShowHelp 屬性與其部件的名字相關(guān), 例如字體對(duì)話框的 ShowHelp 屬性稱為fdShowHelp。
2. 為對(duì)話框部件定義幫助文件。
3. 定義應(yīng)用程序的文件名。
相關(guān)推薦:2010年9月計(jì)算機(jī)等級(jí)考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |