後一頁
前一頁
回目錄
回首頁
第十一章 Delphi應用程式的應用(一)

11.1 Help文件的建立 

  Help文件是Micosoft Windows3.0以上的版本提供的超文本輔助敘述文件。利用這種超文本,用戶可非常方便地使用輔助敘述文件系統。輔助敘述文件是以主題為主線進行編寫的,一個主題可以跳轉至相關的主題,也可按關鍵字進行主題查詢。輔助敘述文件與軟體開發工具相結合,可實現應用程式的'上下文敏感',而且輔助敘述系統自動載入。“上下文敏感”是指根據程式目前執行代碼來顯示Help文件的相應部分。

  Windows提供的很多應用程式都有輔助敘述系統,讀者可以從這些系統中了解應用程式的許多資訊。

11.1.1 建立Help文件所需的工具和文件 

  程式員可為自己的應用程式建立輔助敘述文件系統。但建立最基本的輔助敘述系統, 必須有以下文件

  1. WinHelp 應用程式 ( WinHelp.exe) 。執行輔助敘述系統實際上是執行用輔助敘述源文件的

WindHelp程式。輔助敘述文件只有通過WinHelp文件才能執行。

  2. 能建立主題的字處理器。這種處理器能以RTF格式存檔文件, 能建立$,#,K,+腳標。RTF(Rich Text Format)格式是一個能記錄各種文本特征的文件格式。這些特征包括字形大小、線型風格等。Microsoft Word 6.0處理器能滿足以上要求。

  3. 一個能以ASCII格式存檔文件的字處理器或編輯器,這是為了建立Help工程文件(.HPJ文件)

  4. 輔助敘述文件編譯器(HCP.EXEHC31.EXE),兩種編譯器均能編譯在Windows3.1 環境中使用的輔助敘述文件,但不能編譯Windows3.0環境下的輔助敘述文件。HCP.EXE是保護模式的編譯器,能更好地使用記憶體空間。要在WindowsDos視窗中使用HCP.EXE編譯器。

  5. 輔助敘述編譯器所需的錯誤資訊源文件(HCP.ERRHC31.ERR)。如果輔助敘述文件在編譯過程中出現錯誤,WinHelp執行時將提示有關的錯誤資訊,而這些資訊存檔在HCP.ERRHC31.ERR文件中。

  以下工具能實現輔助敘述系統的進階特征:

  1. 熱點(Hotspot)編輯器(SHED.EXE)

  熱點編輯器能建立分段超圖像文件(.SHG)。這種文件包括一些分成多個熱點的圖像,當用戶按一下圖像,將彈出一個視窗或跳轉至另一主題。

  2. 多解析度點陣圖編譯器(MRBE.EXE)

  這種編譯器能將具備多種解析度的點陣圖結合到一個文件中,以供WinHelp 使用。WinHelp檢查顯示器的解析度, 然後以相應的解析度加以顯示。

  3. 圖像編輯器,它能以點陣圖形式存檔圖像文件。 使用圖像編輯器建立敘述和自定義按鈕。

  4. 繪圖軟體。用以建立除了點陣圖之外的元文件(WMF)

  程式員可以直接把圖像插入文本中,也可以用Windows剪貼簿把圖像貼上去至文本中。 

11.1.2 Help文件的建立 

  下面介紹最簡單、最直接的建立Help文件的方法,假設在Word中建立主題。

  建立Help文件分以下4個步驟:

  1. 建立群群組成輔助敘述文件的主題,並以RTF格式存檔;

  2. 建立內容主題(Content Topic),並以RTF格式存檔;

  3. 建立輔助敘述工程文件(.HPJ)以文本格式存檔;

  4. 將工程文件編譯成輔助敘述源文件(.HLP)。 

11.1.2.1 建立主題 

  一個簡單的輔助敘述主題包括主題題目(Title),主題文本(Text),腳標,主題內容,全局查詢、列印。主題最好是帶有題目,題目寫在主題的第一行。用不同的字形大小、顏色以示區別

寫完題目後,可輸入主題的文本。輸入時不用擔心每行的寬度。 編譯好的輔助敘述文件會根據視窗大小自動確定行寬。在主題的最後插入一個分頁符,WinHelp把每頁視為一個單獨主題。

  書寫主題文本時應注意盡可能地把文本寫成小段落清單,這樣能方便閱讀; 同時要控制主題長度,這樣用戶不需要使用卷軸來閱讀文本。

  在主題中應加入一些腳標, WinHelp 使用這些腳標辨識主題並提供一些導向控制 (Novigation Control),四種典型腳標如表11.1所示。  

11.1 腳標以及用途

──────────────────────────────────

   符號  適用於      用    途

——————————————————————————————————

   # 內容字元串    唯一辨識主題

   $ 標題       在搜詢對話方塊和搜詢歷史列示方塊中顯示主題

   K 關鍵字()    出在搜詢對話方塊中

   + 瀏覽順序     用戶使用時的瀏覽順序

────────────────────────────────── 

  以下分別介紹四種腳標的插入方法:

  1. 插入#腳標。把遊標移至主題的最前端插入#腳標。這時主題文本下端也會出現#,在此後鍵入內容字元串。WinHelp使用內容字元串作為唯一的辨識主題。用戶永遠也看不見這些字元串,但設計人員用它們定義跳轉主題。

  2. 插入$腳標,把遊標移至#腳標後,插入$腳標。在文本下端的$腳標處,輸入主題的標題,該標題與第一行出現的標題一致,標題將會出現在搜詢對話方塊和搜詢歷史對話方塊中

3. 插入K腳標。在主題第一行的腳標之後插入K腳標,在主題文本中的K 腳標後鍵入欄位,這些欄位將出現在搜詢列示方塊中,見11.3圖。

  4.插入+腳標。在主題第一行的K腳標之後插入+腳標。在主題文本以下的+ 腳標處鍵入瀏覽順序標識符。標識符可以是一個數(005),或一群群組名字加上冒號和數( CAL C:005)一個主題只能有一個瀏覽順序。

  熱點是用戶可以激發某種動作的文本或圖像。一個熱點可跳轉至另一個主題。在其它視窗中顯示主題或執行宏。多數情況下,重要欄位被設計成熱點以實現主題跳轉。

  以下是實現主題跳轉的步驟:

  1. 輸入要跳轉的欄位或插入圖像;

  2. 高光度選擇欄位,用雙底線格式化。在MicroSoft Word中,按ALT +T 鍵彈出字元格式對話方塊,在清單中選擇雙底線;

  3. 在緊挨在這些欄位或圖像之後,鍵入指定主題的字元串。 並對內容字元串進行隱藏格式化。這個內容字元串是跳轉主題的內容字元串;

  根據以上步驟能實現主題之間的跳轉。

  最後要把編輯的文件以RTF格式存檔下來,WinHelp只能編譯RTF文件。以下是典型的RTF文件: 

#$+ Help Example Indexindex_info 1 of 2index_2 

Commands

Edit Menumenu_edit

File Menumenu_file

Glossary

Defined Termsglossary

Procedures

Copying Textproc_copying_text

Deleting Textproc_deleting_text

Exitingproc_exiting

Available From Your Application

Context Sensitive Topics

 

 

 

 

 

 

cs_topics 

# main_index

$ Help Index

+ index:0005 

11.1.2.2 建立內容主題 

  內容主題列出了輔助敘述系統的主要部分。用圖示啟動輔助敘述系統或按Content按鈕均出現內容主題。內容主題的每個項目都可跳轉。

建立內容主題與建立一般主題類似,WinHelp預設第一個主題為內容主題。其建立步驟如下:

  1. 移至第一個源文件的開始處;

  2. 鍵入希望出現的主題標題,這些標題處於不同的行;

  3. 將每個主題設定成熱點。 

11.1.2.3 建立輔助敘述工程文件 

  輔助敘述工程文件是一個文本文件。包含了有關輔助敘述文件的許多資訊。 編譯器對工程文件進行編譯。工程文件的檔案附加名必須是HPJ,編譯後的檔案附加名是HLP:

下面是一個簡單的輔助敘述工程文件:

[OPTIONS]

CONTENTS=context_string

TITLE=title

COMPRESS=compress_level

ERRORLOG=log_filename

[CONFIG]

BrowseButtons()

[FILES]

RTF_filename_1

RTF_filename_2

RTF_filename_3

  [OPTIONS]

Context_String是內容主題的內容字元串。這一行並不是必須有的。 如果沒有第一行,WinHelp把第一個輔助敘述文件的第一個主題作為內容主題。

  TITLE = title

  title是輔助敘述視窗的標題。不要將標題用引號括住。這一行也不是必需要有的。如果沒有,缺省的標題是Windows Help.

CoMPRESS = Compress level

Compress_level決定工程文件在編譯時是否被壓縮, 壓縮後的文件編譯時要花較長的時間。

  表11.2 Compress_level的取值: 

11.2 Compress_leve的取值及含義

─────────────────────────────

  取值    編譯時間       文件大小

—————————————————————————————

 FALSE 快          大(無壓縮)

MEDIUM 中等         中等(高度壓縮)

HIGH 慢          小(無壓縮)

  0       快          (無壓縮)

 1       慢          (高度壓縮)

  No 快          (無壓縮)

 TRUE     慢          (高度壓縮)

  YES 慢           (高度壓縮)

───────────────────────────── 

  ERROR(LOG = log_filename)

log_filenameWinHelp執行時的錯誤輸出文件。如果編譯時工程文件出錯,需要一個記錄錯誤的文件。如果工程文件有這一行,WinHelp在執行時自動建立的文件,如果沒有,錯誤將顯示在螢幕上,但不存入任何文件中。

  BrowseButton()

如果有這一行,輔助敘述按鈕條中將出現>><<鍵,要實現順序瀏覽, 還需在輔助敘述文件中定義。詳見11.1.2.1節中的插入+腳標。

  [FILEs]

RTF_filename.RTF源檔案標簽。所有的RTF文件構成整個輔助敘述系統。每個RTF 應處在

不同的行。

  以下是工程文件的實例

; This help project requires hc 3.1

[OPTIONS]

errorlog = iconwrks.err

title = IconWorks Help

contents = CONTENTS

compress = false

oldkeyphrase = false

warning = 3 

[FILES]

iconwrks.rtf 

[MAP]

CONTENTS 1

EDITOR_KEYBOARD 2

EDITOR_COMMANDS 3

VIEWER_KEYBOARD 5

VIEWER_COMMANDS 6

DEFINING_COLORS 1000

EDITOR_FILE_MENU 1100

EDITOR_FILE_MENU 1101

EDITOR_FILE_MENU 1102

EDITOR_FILE_MENU 1103

EDITOR_FILE_MENU 1104

EDITOR_FILE_MENU 1105

EDITOR_EDIT_MENU 1200

EDITOR_EDIT_MENU 1201

EDITOR_EDIT_MENU 1202

EDITOR_EDIT_MENU 1203

EDITOR_EDIT_MENU 1210

EDITOR_EDIT_MENU 1211

EDITOR_EDIT_MENU 1212

EDITOR_VIEW_MENU 1108

EDITOR_VIEW_MENU 1109

EDITOR_VIEW_MENU 1110

EDITOR_VIEW_MENU 1111

EDITOR_VIEW_MENU 1112

EDITOR_VIEW_MENU 1111

EDITOR_TOOLS_MENU 1400

SELECT_TOOL 1401

PAINT_TOOL 1402

FILL_TOOL 1403

LINE_TOOL 1404 

[WINDOWS]

main = "IconWorks Help", (0,0,1023,1023 ),,, (192,192,192 )

glossary = "IconWorks Help", (222,206,725,486 ),,, (192,192,192 ), 1 

[CONFIG]

CB("glossary", "&Glossary", "JI(`iconwrks.hlp>glossary', `GLOSSARY')")

BrowseButtons() 

11.1.2.4 編譯輔助敘述工程文件 

  有兩種編譯器可以編譯輔助敘述工程文件:HCP.EXE H31.EXE。兩種編譯器編譯的文件不能在Winddow3.0中使用,但能在Windows 3.1中使用。其中HCP.EXE是保護模式“編譯器”,它能更好的使用記憶體。必須在WindowsDos視窗中使用HCP.EXE

  編譯前要注意兩個問題:

  1. 所有源文件必須以RTF格式存檔;

  2. 下面的文件必須在同一個目錄下

   所有的.RTF文件

   輔助敘述編譯器(HCP.EXE,HC31.EXE)

編譯器錯誤資訊源文件(HCD.ERR,HC1.ERR)

   輔助敘述工程文件(.HPF)

任何引用點陣圖或SHED的文件(.BMP.SHG) 

  如果以上文件不在同一目錄中,必須在工程文件中定義相應的路徑。

  編譯要在Dos環境中進行,命令格式: 

  Help_Compiler_rootname project_File_rootname 

Help_Compiler_rootname是不帶檔案附加名的編譯器名字。project_file_rootname是不

帶檔案附加名的輔助敘述工程檔案標簽,如: 

  HCP MYHELP 

11.2 Delphi應用程式的Help程式設計 

  Delphi應用程式能夠方便地應用輔助敘述系統。程式可以動態地執行輔助敘述系統。 對話方塊可以與輔助敘述系統相聯。 

11.2.1 定義應用程式的輔助敘述文件 

  要在應用程式中使用輔助敘述系統,必須有相應的輔助敘述文件。程式可以編寫自己的輔助敘述文件, 也可以使用已有的輔助敘述文件。 另外,要為應用程式定義輔助敘述文件以便在用戶需要輔助敘述時應用程式能打開相應的輔助敘述文件。

  在 Delphi 整合開發環境中選擇“Options | Project 選擇表項, 系統彈出工程選擇對話方塊, 再選擇Application Options頁面,在輔助文件中輸入輔助敘述檔案標簽。

 


後一頁
前一頁
回目錄
回首頁