|
|
||||
Tips > |
|||||
OnHint イベントで Button と StatusBar にヒントを表示 |
更新 : 2009/04/02 |
||||
|
|
||
解説: コンポーネントの上にマウスを乗せるとヒントを表示する場面をよく見ると思います。それと同時にStatusBar にもヒントが出る、というアプリケーションもあります。ふたつ一緒に表示させるにはどのようにすればよいのでしょうか? ひとつのコンポーネントであれば、そう気にかけず記述してしまえばよいでしょう。でも複数のコンポーネントとなると、それなりに上手く記述する仕方を知っておきたいものです。 TApplication の OnHint イベントを使うと、コントロールにマウスポインタが置かれたとき実行されるイベントハンドラを記述できます。ここにコントロールの Hint プロパティの値を StatusBar のキャプションに表示させるようにしておきます。 使用例: Button コンポーネントにマウスを当てると、Button の上と StatusBar にヒントを表示させています。 コンポーネントは、 StatusBar と Button を適当に配置するだけです。 まず Unit1.h の private に ShowHint 関数を宣言して起きます。これは Application の OnHint イベントが発生したときに処理するイベントハンドラになります。 private: // ユーザー宣言 void __fastcall ShowHint(TObject *Sender); Unit1.cpp の コンストラクタでは Button1 の ShowHint プロパティを true に、Hint プロパティに "ボタン|クリックしてください" をセットしています。 OnHint には ShowHint 関数を割り当てておきます。 //------------------------------------------------------------------- void __fastcall TForm1::ShowHint(TObject *Sender) { // StatusBar にヒントを表示する StatusBar1->SimpleText = Application->Hint; } //------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Button1->ShowHint = true; Button1->Hint = "ボタン|クリックしてください"; Application->OnHint = ShowHint; } //------------------------------------------------------------------- |