把控件的ShowHint屬性設置成真值系統自動將ParentShowHint設置成假值應用程序部件的ShowHint屬性可以決定整個程序的幫助提示是否有效如果應用程序的ShowHint 屬性為真程序中各部件的幫助提示才有效 但是否顯示還要取決於部件的SHowHint ParentShowHint及其父件的ShowHint屬性如果應用程序的ShowHint屬性為假值無論程序部件的屬性如何設置程序中所有幫助提示都無效
Hint屬性是顯示在幫助提示框中的文本字符Hint屬性應用於所有控件包括應用程序部件菜單部件因為應用程序部件不是可視部件因此不能在Object Inspector 窗口中定義Hint屬性但可以在定義部件的Hint屬性時同時定義應用程序部件的Hint 屬性定義時只需用|字符會分開例如
EditHint := Name |Enter Name in the edit box
等價於
EditHint := Name;
ApplicationHint := Enter Name in the edit box
應用程序的Hint屬性可用在OnHint事件
如果只定義了一個值Delphi把這個值同時賦給部件和應用程序部件的Hint屬性 如果應用程序的ShowHint屬性為假值所有的幫助提示將不顯示 但可以利用程序部件的Hint屬性顯示其它提示如狀態條等
當某一部件的SHowHint屬性為真 但又沒有定義Hint 屬性 如果此時文件定義了Hint屬性則此部件將使用文件的Hint值
OnHint事件
當用戶把鼠標放在某一部件而該部件的Hint 值不為空值此時發生OnHint事件利用OnHint事件可以執行一些特殊的操作
最常用是利用OnHint事件顯示狀態條的標題狀態條是用面板來實現的下面舉例說明
這個例子使用了面板部件菜單一個編輯框菜單可隨意設計 但需記住每個菜單項的Hint 值 另外 定義編輯框的Hint 值 把面板置於窗體底部( 將Align 屬性置於dBotton)把面板標題置於左端(將Alignment屬性置於taleftJustify)
OnHint 事件是應用程序部件的事件而應用程序部件是非可視部件不能使用Object Inspector窗體定義事件必須編寫自己的OnHint事件
首先在TForm對象中宣稱DisplayHint方法並在單元的implementation部分編寫實現代碼在DisplayHint方法中把應用程序的Hint屬性賦給面板的標題另一個重要問題是必須把DisplayHint方法作為處理OnHint事件的方法窗體的OnCreate事件的代碼解決了這個問題
下面列出了程序的完整代碼當用戶運行程序 把鼠標置於菜單或部件之上在窗體的狀態條中將出現定義的提示
Type
TForm = class(TForm)
Button: TButton;
Panel: TPanel;
Edit: TEdit;
procedure FormCreate(Sender: TObject)
private
{ Private declarations }
public
procedure DisplayHint(Sender: TObject)
end;
var
Form: TForm;
implementation
{$R *FRM}
procedure TFormDisplayHint(Sender: TObject)
begin
PanelCaption := ApplicationHint;
end;
procedure TFormFormCreate(Sender: TObject)
begin
ApplicationOnHint := DisplayHint;
end;
自定義部件的幫助安裝
Delphi有一個功能強大的幫助搜詢引擎叫做多層幫助能為自定義的部件提供上下文敏感幫助多層幫助允許把自定義部件的多個幫助文件安裝成Delphi 的幫助序列以提供給用戶一種內層訪問幫助文件的方式用戶有三種方法訪問幫助文件
[] [] [] []
From:http://tw.wingwit.com/Article/program/Delphi/201311/25196.html