国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

改造Hint輸出方式

2019-11-17 05:27:05
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

  elphi為每個(gè)可視構(gòu)件(而非快速按鈕專屬)都提供了Hint及ShowHint特性,其中Hint屬性指定文本提示盒中的文本,而ShowHint屬性則決定鼠標(biāo)指向構(gòu)件時(shí)是否顯示文本提示盒,當(dāng)ShowHint值為True時(shí),顯示文本提示盒。用戶可在對(duì)象監(jiān)視器(Object Inspector)的屬性欄中設(shè)置或在程序中修改Hint及ShowHint屬性。

  除此之外,Delphi還在類Tapplication中提供了HintColor、HintPause、HintHidePause、HintShortPause幾個(gè)屬性來(lái)控制文本提示盒的輸出方式。

  一般來(lái)說(shuō),HintColor、HintPause、HintHidePause、HintShortPause通常在Form的OnCreate事件中設(shè)定它們的值(如有需要的話),如以下的一段程序。

  PRocedureTMainForm.FormCreate(Sender:TObject);
  begin
  Application.HintPause:=0;{使文本提示盒立即出現(xiàn)}
  Application.HintPause:=clBlue;{以藍(lán)色小方框的方式出現(xiàn)}
  Application.HintHidePause:=10000;{延長(zhǎng)停留時(shí)間為10秒}
  Application.HintShortPause:=100;
  end;

  另外,在編程中,我們還可以通過TApplication的OnHint事件獲取鼠標(biāo)指向構(gòu)件的Hint文本。

  事實(shí)上,Delphi提供的文本提示盒輸出方框、文本字型都太小,既不美觀亦不易看清。值得慶幸的是,Delphi2.0版提供了全部構(gòu)件的源代碼,我們可以通過對(duì)類TApplication的源碼作一些小修改,增加一個(gè)HintFont的屬性,即可象修改HintColor一樣來(lái)修改文本提示盒的字體
字型大小等。

  TApplication是在Forms單元里定義的,因此讓我們打開Forms.pas單元文件來(lái)作以下一些修改:

  ProcedureSetHintColor(Value:TColor};
  ProcedureSetHintFont(Value:TFont);{1997.04.19 MyNewIdea}
  Property HintColor:TColor read FHintColor Write SetHintColor;
  Property HintFont:TFontwriteSetHintFont;{1997.04.19Mynewidea}
  ProcedureTApplication.SetHintColor(Value:Color); //增加一個(gè)過程{1997.04.19Mynewidea}

  ProcedureTApplication.SetHintFont(Value:TFont);
  begin
  if(Value nil) and (FHinWindow nil) then
  FHintWindow.Canvas.Font:=Value;
  end;{1997.04.19Mynewidea}

  別忘了在新增的語(yǔ)句旁作一些必要的注釋,如上 模?1997.04.19Mynewidea},可以很清楚地知道哪些語(yǔ)句是你自己加進(jìn)去的。

  將修改后的Forms.pas存盤,然后重建庫(kù)文件,以后在你的庫(kù)文件里,類TApplication就多了一個(gè)屬性HintFont,你就可以很輕易的通過HintFont屬性來(lái)修改文本提示盒的字體、字型大小了,如以下一段程序:

  ProcedureTMainForm.FormCreate(Sender:TObject);
  Var
  NewHintFont : TFont;
  begin
  NewHintFont:=TFont.Create;
  NewHintFont.Name:=楷體-GB2312;{設(shè)置字體為楷體}
  NewHintFont.Size:=12;{設(shè)置字型大小為12}
  Application.HintFont:=NewHintFont;
  end;

  此外,Delphi繪制文本提示盒是在類THintWindow的方法ActivateHint中通過WindowsAPI資源函數(shù)SetWindowPos來(lái)實(shí)現(xiàn)的,這段代碼在Controls.pas單元文件里,有愛好的讀者可以進(jìn)一步修改這段代碼以繪制其他任意外形(如橢圓、圓等)而不僅僅是矩型方框的文本提示盒!但或許最好的方法是從類THintWindow繼續(xù)下來(lái)一個(gè)新類,并重載Activate?Hint方法,然后在應(yīng)用程序開始處給變量HintWindowClass指派一個(gè)新類實(shí)例。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 桓台县| 湘潭市| 古蔺县| 大宁县| 常熟市| 平远县| 湘潭县| 木里| 陆川县| 敦化市| 静宁县| 通河县| 玉树县| 商洛市| 瑞安市| 满洲里市| 涞源县| 池州市| 大同县| 若羌县| 林州市| 靖西县| 高邑县| 明光市| 定日县| 吴江市| 正阳县| 西和县| 阿城市| 苏州市| 阿克苏市| 交口县| 鸡西市| 安国市| 静乐县| 客服| 邹城市| 敦化市| 顺义区| 平安县| 青阳县|