hintx.pas

来自「带图标的提示栏(Hint窗口)的实现方法」· PAS 代码 · 共 49 行

PAS
49
字号
{--代码开始--} 

unit Hintx;

interface 

uses 
Windows, Messages, Controls;

type 
  TIconHintX = class(THintWindow) 
protected 
  procedure Paint; override;
public
  function CalcHintRect(MaxWidth: Integer; const AHint: string; AData: Pointer): TRect; override; 
end; 

implementation 

uses Forms; 

{ TIconHintX } 

{-为了放置一个图标,重新计算提示栏窗体的大小:-} 
function TIconHintX.CalcHintRect(MaxWidth: Integer; const AHint: string;AData: Pointer): TRect; 
begin 
  Result := inherited CalcHintRect(MaxWidth, AHint, AData);
  Result.Right := (Length(AHint) * 5) + Application.Icon.Width;
  Result.Bottom := (Application.Icon.Height) * 2; 
end; 

procedure TIconHintX.Paint; 
const MARGIN = 5;
begin
  inherited;
  Canvas.Draw(MARGIN, MARGIN * 5, Application.Icon);
  SendMessage(Handle, WM_NCPAINT, 0, 0); //画提示栏边框 
end; 

initialization
 
//把我们的新类设置为默认的提示栏类: 
HintWindowClass := TIconHintX; 

end.


{--代码结束--}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?