11.3 Delphi幫助提示(Hint)的應用
使用Delphi集成開發(fā)環(huán)境時,用戶常把鼠標置于程序部件上,如加速按鈕,對齊按鈕等。鼠標在部件上停留超過一定時間后,Delphi將會顯示一個彈出窗口, 里面有部件名稱和概述。
這就是Delphi的幫助提示。Delphi的應用程序可通過定義ShowHint 屬性實現(xiàn)幫助提示。
11.3.1 幫助提示的顯示
ShowHint屬性可應用于所有的控件和應用程序部件,控件的ShowHint 屬性含義與程序的稍有不同?丶腟howHint屬性決定某一控件是否顯示幫助提示,如果ShowHint 是真值,當用戶把鼠標置于控件之上超過一定時間后,控件將出現(xiàn)幫助提示。如果是假值,則不出現(xiàn)提示?丶欠耧@示還決定于控件的ParentShowHind屬性。如果 ParentShowHint是真值,控件的父類的ShowHint屬性將決定控件是否顯示幫助提示。 假如有一個分組框和一個檢查框,分組框是檢查框的父件。表11.3說明了子件與父件的 ShowHint,ParentShowHint屬性設置對子件幫助提示的影響。
表11.3 Hint屬性設置對幫助提示的影響
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
分組框ShowHint 檢查框ParentShowHint 檢查框ShowHint 幫助提示
─────────────────────────────────────
T或F F T 顯示
T T F 顯示
F T T 不顯示
T或F F F 不顯示
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
T表示真值,F(xiàn)表示假值
把控件的ShowHint屬性設置成真值,系統(tǒng)自動將ParentShowHint設置成假值。應用程序部件的ShowHint屬性可以決定整個程序的幫助提示是否有效。如果應用程序的ShowHint 屬性為真,程序中各部件的幫助提示才有效, 但是否顯示還要取決于部件的SHowHint, ParentShowHint及其父件的ShowHint屬性,如果應用程序的ShowHint屬性為假值,無論程序部件的屬性如何設置,程序中所有幫助提示都無效。
Hint屬性是顯示在幫助提示框中的文本字符。Hint屬性應用于所有控件,包括應用程序部件菜單部件。因為應用程序部件不是可視部件,因此不能在Object Inspector 窗口中定義Hint屬性。但可以在定義部件的Hint屬性時同時定義應用程序部件的Hint 屬性,定義時只需用“|"字符會分開,例如:
Edit.Hint := 'Name |Enter Name in the edit box'
等價于
Edit.Hint := Name;
Application.Hint := Enter Name in the edit box
應用程序的Hint屬性可用在OnHint事件。
如果只定義了一個值,Delphi把這個值同時賦給部件和應用程序部件的Hint屬性。 如果應用程序的ShowHint屬性為假值,所有的幫助提示將不顯示, 但可以利用程序部件的Hint屬性顯示其它提示,如狀態(tài)條等。
當某一部件的SHowHint屬性為真, 但又沒有定義Hint 屬性, 如果此時文件定義了Hint屬性,則此部件將使用文件的Hint值。
11.3.2 OnHint事件
當用戶把鼠標放在某一部件,而該部件的Hint 值不為空值,此時發(fā)生OnHint事件。利用OnHint事件可以執(zhí)行一些特殊的操作。
最常用是利用OnHint事件顯示狀態(tài)條的標題,狀態(tài)條是用面板來實現(xiàn)的。下面舉例說明。
這個例子使用了面板部件,菜單,一個編輯框。菜單可隨意設計, 但需記住每個菜單項的Hint 值。 另外, 定義編輯框的Hint 值, 把面板置于窗體底部( 將Align 屬性置于dBotton)把面板標題置于左端(將Alignment屬性置于taleftJustify)。
OnHint 事件是應用程序部件的事件,而應用程序部件是非可視部件,不能使用Object Inspector窗體定義事件,必須編寫自己的OnHint事件。
首先,在TForm1對象中宣稱DisplayHint方法,并在單元的implementation部分編寫實現(xiàn)代碼。在DisplayHint方法中,把應用程序的Hint屬性賦給面板的標題。另一個重要問題是必須把DisplayHint方法作為處理OnHint事件的方法。窗體的OnCreate事件的代碼解決了這個問題。
下面列出了程序的完整代碼。當用戶運行程序, 把鼠標置于菜單或部件之上,在窗體的狀態(tài)條中將出現(xiàn)定義的提示。
Type
TForm1 = class(TForm)
Button1: TButton;
Panel1: TPanel;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
procedure DisplayHint(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.FRM}
procedure TForm1.DisplayHint(Sender: TObject);
begin
Panel1.Caption := Application.Hint;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHint := DisplayHint;
end;
11.4 自定義部件的幫助安裝
Delphi有一個功能強大的幫助搜詢引擎,叫做多層幫助,能為自定義的部件提供“上下文敏感”幫助。多層幫助允許把自定義部件的多個幫助文件安裝成Delphi 的幫助序列,以提供給用戶一種內(nèi)層訪問幫助文件的方式,用戶有三種方法訪問幫助文件:
1. 設計狀態(tài)選中部件,然后按F1;
2. 在自定義部件的Object Inspector窗口中按F1;
3. 在Delphi幫助系統(tǒng)選擇搜詢主題。
Delphi 在提供這種幫助機制時, 不需要編寫額外的代碼。 有些文件是自定義部件幫助系統(tǒng)所必須的, 以下介紹安裝的具體步驟。
安裝所需的文件
STEREO.PAS 自定義部件的源代碼
STEREO.RES 自定義部件的資源文件
STEREO.DCR 工具調(diào)色板圖標0
STEREO.HRJ 幫助工程文件
STEREO.RTF 幫助源文件
STEREO.HLP 自定義部件的幫助文件
STEREO.KUF 關鍵字文件
安裝步驟
11.4.1 安裝關鍵字文件
1. 退出Delphi集成開發(fā)環(huán)境
2. 備份\delphi\bin\delphi.hdx
3. 運行HelpInst應用程序
4. 打開\delphi\bin\delphi.hdx
5. 選擇keywords |Add菜單項并選擇Sberee.buf
6. 選擇File|Source菜單項
7. 退出HelpInst
8. 因為WinHelp需要知道STEREO.HLP的位置所以要做以下其中之一:
a. 把STEREO.Hlp復制到\delphi:\bin\目錄下;
b. 在WinHELP.INI文件中加上stereo.hlp=\usehelp;
11.4.2 安裝自定義部件
1. 進入Delphi集成開發(fā)環(huán)境
2. 選擇Option|Install Components菜單項
3. 選擇Add
4. 選擇Browse
5. 輸入\stereo
6. 選擇OK
11.4.3 激活自定義部件幫助系統(tǒng)
1. TstereoButton和TStereeSpeaker部件從部件調(diào)色板上的Sample頁拖至窗口;
2. 選擇TStereoButton部件并按F1,屏幕上出現(xiàn)關于TStereoButton的幫助信息;
3. 在Object Inspector窗體口選擇IsOn屬性并按F1,屏幕顯示IsOn屬性;
4. 在主菜單中選擇Help|Topic菜單項,并搜詢Stereo 主題, 屏幕將出現(xiàn)STEREO
.HLP的幫助內(nèi)容。
相關推薦:2010年9月計算機等級考試試題及答案解析專題北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |