THintWindow
現在、Lazarus のソースとメモ帳しかありませんが、理解することが最も重要であるため、 がどのように使用されているかを説明しようと思います。
- クラス名を
HintWindowClass
グローバル変数に割り当てる場合、ヒント ウィンドウ クラスをアプリケーションでグローバルに使用できるように登録するとします。次に、アプリケーションがヒントを表示するたびに、ヒント ウィンドウ クラスを使用し、オーバーライドTHintWindow
しなかった基本クラスの関数と共に、オーバーライドされた関数を呼び出します。アプリケーションのスコープで使用するヒント ウィンドウ クラスを登録する方法は次のとおりです。
HintWindowClass := TExHint;
- ヒント ウィンドウのサイズを取得するために、アプリケーションはヒント
CalcHintRect
が表示されるたびに関数を呼び出します。ヒント ウィンドウのサイズを独自に調整するには、この関数をオーバーライドする必要があり
、その結果、必要な境界四角形を返します。オーバーライドしない場合は、CalcHintRect
(クラスの) 基本クラスの関数THintWindow
が使用されるため、オーバーライドする必要があります。
type
TExHint = class(THintWindow)
public
constructor Create(AOwner: TComponent); override;
function CalcHintRect(MaxWidth: Integer; const AHint: String;
AData: Pointer): TRect; override;
end;
constructor TExHint.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
with Canvas.Font do
begin
Name := 'Hanuman';
Size := Size + 3;
end;
end;
function TExHint.CalcHintRect(MaxWidth: Integer; const AHint: String;
AData: Pointer): TRect;
begin
// here you need to return bounds rectangle for the hint
Result := Rect(0, 0, SomeWidth, SomeHeight);
end;