程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> 改造HINT的輸出方式

改造HINT的輸出方式

編輯:Delphi

  Delphi為每個可視構件(而非快速按鈕專屬)都提供了Hint
  及ShowHint特性,其中Hint屬性指定文本提示盒中的文本,
  而ShowHint屬性則決定鼠標指向構件時是否顯示文本提示盒,
  當ShowHint值為True時,顯示文本提示盒。用戶可在對象監
  視器(ObjectInspector)的屬性欄中設置或在程序中修改Hint
  及ShowHint屬性。
  除此之外,Delphi還在類TApplication中提供了
  HintColor、HintPause、HintHidePause、HintShortPause幾
  個屬性來控制文本提示盒的輸出方式。
  一般來說,HintColor、HintPause、HintHidePause、
  HintShortPause通常在Form的OnCreate事件中設定它們的值
  (如有需要的話),如以下的一段程序。
  ProcedureTMainForm.FormCreate(Sender:TObject);
  begin
  Application.HintPause:Κ0;{使文本提示盒立即出現}
  Application.HintPause:ΚclBlue;{以藍色小方框的
  方式出現}
  Application.HintHidePause:Κ10000;{延長停留時間
  為10秒}
  為10秒}
  Application.HintShortPause:Κ100;
  end;
  另外,在編程中,我們還可以通過TApplication的OnHint
  事件獲取鼠標指向構件的Hint文本。
  事實上,Delphi提供的文本提示盒輸出方框、文本字型都
  太小,既不美觀亦不易看清。值得慶幸的是,Delphi2.0版提
  供了全部構件的源代碼,我們可以通過對類TApplication的
  源碼作一些小修改,增加一個HintFont的屬性,即可象修改
  HintColor一樣來修改文本提示盒的字體、字型大小等。
  TApplication是在Forms單元裡定義的,因此讓我們打開
  Forms.pas單元文件來作以下一些修改:
  ProcedureSetHintColor(Value:TColor};
  ProcedureSetHintFont(Value:TFont);
  {1997.04.19Mynewidea}
  PropertyHintColor:
  TColorreadFHintColorWriteSetHintColor;
  PropertyHintFont:TFontwriteSetHintFont;
  {1997.04.19Mynewidea}
  ProcedureTApplication.SetHintColor(Value:Color);
  上增加一個過程
  {1997.04.19Mynewidea}
  ProcedureTApplication.SetHintFont(Value:TFont);
  beginif(ValueΙΛnil)and(FHinWindowΙΛnil)then
  FHintWindow.Canvas.Font:ΚValue;
  end;{1997.04.19Mynewidea}
  別忘了在新增的語句旁作一些必要的注釋,如上面的
  {1997.04.19Mynewidea},可以很清楚地知道哪些語句是你
  自己加進去的。
  將修改後的Forms.pas存盤,然後重建庫文件,以後在
  你的庫文件裡,類TApplication就多了一個屬性HintFont,
  你就可以很輕易的通過HintFont屬性來修改文本提示盒的字
  體、字型大小了,如以下一段程序:
  ProcedureTMainForm.FormCreate(Sender:TObject);
  Var
  NewHintFont:ΚTFont.Create;
  begin
  NewHintFont:ΚTFont.Create;
  NewHintFont.Name:Κ′楷體-GB2312′;{設置字體為
  楷體}
  NewHintFont.Size:Κ12;{設置字型大小為12}
  Application.HintFont:ΚNewHintFont;
  end;
  此外,Delphi繪制文本提示盒是在類THintWindow的方法
  ActivateHint中通過WindowsAPI資源函數SetWindowPos來實
  r> ActivateHint中通過WindowsAPI資源函數SetWindowPos來實
  現的,這段代碼在Controls.pas單元文件裡,有興趣的讀者
  可以進一步修改這段代碼以繪制其他任意形狀(如橢圓、圓等)
  而不僅僅是矩型方框的文本提示盒!但或許最好的方法是從類
  THintWindow繼承下來一個新類,並重載Activate??Hint方
  法,然後在應用程序開始處給變量HintWindowClass指派一個
  新類實例

  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved