バルーン型のヒントをTLabelに

解決


deldel  2006-01-26 01:00:59  No: 19825

以下にあるサンプルを実行しますと、ボタンの上にマウスカーソルを
乗せると、バルーン型のヒントが表示されます。
http://www2.big.or.jp/~osamu/Delphi/delphi-browse.cgi?index=069534

で、
TTMAddToolControl(hToolTip,Button1.Handle,s);
の部分なのですが、例えば Label1 にヒントを表示させたい場合、
TTMAddToolControl(hToolTip,Label1.Handle,s);
となるのでしょうが、TLabel には Handle が無いため、当然エラーになります。
これは何とかならないでしょうか・・・


にしの  2006-01-26 01:36:38  No: 19826

ハンドルがあればよいので、TLabelでなくTStaticTextに置き換えればできます。


deldel  2006-01-26 01:58:43  No: 19827

そうなのですが、背景を透明にしたいのでTLabelを使用しています。
同様に、TSpeedButton にも表示させたいのですが、これもHandleが
ないですよねぇ・・・


わからんちん  2006-01-26 02:22:08  No: 19828

タイマーかスリープ入れて自前で・・ってのはどうでしょう?


にしの  2006-01-26 03:07:50  No: 19829

THintWindowを継承して、リージョンでバルーンっぽく抜き出してやれば出来そうな気がします。
# ちょっと時間がないので試せません

THintWindowを継承して、TBaloonHintWindowを作ったとしたら、TForm.OnCreateで次のような記述になります。

//HintWindowClassを入れ替える
HintWindowClass := TBaloonHintWindow;
//HintWindowClassの有効化(ShowHintをFalse/Trueとすると有効になる)
Application.ShowHint := False;
Application.ShowHint := True;


えーと  2006-01-26 03:27:47  No: 19830

JEDI VCLにJvBalloonHintというコンポーネントがあります。
http://sourceforge.net/project/showfiles.php?group_id=45786

JVCL Demosを実行してみてください。
ソースを見れば実装も分かると思います。


えーと  2006-01-26 03:35:08  No: 19831

すみません。見落としていました。

> ボタンの上にマウスカーソルを乗せると
これは出来るかどうか分かりません。


にしの  2006-01-26 04:21:34  No: 19832

TJvBalloonWindowがTHintWindowを継承しているので、
・uses節にJvBalloonHintを追加。
・FormCreateに以下を追加
  HintWindowClass := TJvBalloonWindow;
  Application.ShowHint := FALSE;
  Application.ShowHint := TRUE;
で出来ました。
# Delphi7+JVCL3.00Beta1
やはりバルーンのリージョンは自前で用意しているようですね。


deldel  2006-01-26 18:19:08  No: 19833

できました!!感激です!!ありがとうございました!!
でも・・・かなり多くのファイルが無いとコンパイルできなかったので、
必要な部分だけ抽出するのが大変そうですが、頑張ってみます。


えーと  2006-01-27 04:33:56  No: 19834

> 必要な部分だけ抽出するのが大変そう
選択インストールも出来たと思います。
当てずっぽうですがJvCore とJvStdCtrls とJvNoVisual だと思います。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加