TBalloonHint::ShowHintの使い方
TBalloonHint::ShowHintに問題があるみたいで、代替にJVCLのTJvBalloonHintを使うというエントリーを書いたのだけれども、Embarcaderoの高橋さんからコメントがあって、再テスト。自分の勘違いで問題が無いことが確認できたのだけれども、以下の点に注意。
- TBalloonHintは動的に生成せずにフォームに貼ったコンポーネントを使い回すこと。
- ShowHintメソッドで指定する座標はフォームの座標ではなく、スクリーン座標を指定する。
- ShowHintメソッドはヒント表示後すぐに終了する。HideAfterプロパティで指定した時間を待たないので、直後にdeleteなどで破棄するとヒントそのものが表示されない。
以下は正しく動作するコード例。TBalloonHintはコンポーネントとしてフォームに貼ること。
C++Builderの例:
void __fastcall TForm1::Button1Click(TObject *Sender) { BalloonHint1->Title = _T("ヒントのタイトル"); BalloonHint1->Description = _T("バルーンヒントを表示してみる。"); BalloonHint1->HideAfter = 2000; BalloonHint1->ShowHint(Button1->ClientToScreen(Button1->ClientRect.CenterPoint())); }
Delphiの例:
procedure TForm1.Button1Click(Sender: TObject);
begin
BalloonHint1.Title := 'ヒントのタイトル';
BalloonHint1.Description := 'バルーンヒントを表示してみる。';
BalloonHint1.HideAfter := 1500;
BalloonHint1.ShowHint(Button1.ClientToScreen(CenterPoint(Button1.ClientRect)));
end;
でも、TBalloonHint::ShowHintのヘルプがないんだよな…。