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