以下にあるサンプルを実行しますと、ボタンの上にマウスカーソルを
乗せると、バルーン型のヒントが表示されます。
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 が無いため、当然エラーになります。
これは何とかならないでしょうか・・・
ハンドルがあればよいので、TLabelでなくTStaticTextに置き換えればできます。
そうなのですが、背景を透明にしたいのでTLabelを使用しています。
同様に、TSpeedButton にも表示させたいのですが、これもHandleが
ないですよねぇ・・・
タイマーかスリープ入れて自前で・・ってのはどうでしょう?
THintWindowを継承して、リージョンでバルーンっぽく抜き出してやれば出来そうな気がします。
# ちょっと時間がないので試せません
THintWindowを継承して、TBaloonHintWindowを作ったとしたら、TForm.OnCreateで次のような記述になります。
//HintWindowClassを入れ替える
HintWindowClass := TBaloonHintWindow;
//HintWindowClassの有効化(ShowHintをFalse/Trueとすると有効になる)
Application.ShowHint := False;
Application.ShowHint := True;
JEDI VCLにJvBalloonHintというコンポーネントがあります。
http://sourceforge.net/project/showfiles.php?group_id=45786
JVCL Demosを実行してみてください。
ソースを見れば実装も分かると思います。
すみません。見落としていました。
> ボタンの上にマウスカーソルを乗せると
これは出来るかどうか分かりません。
TJvBalloonWindowがTHintWindowを継承しているので、
・uses節にJvBalloonHintを追加。
・FormCreateに以下を追加
HintWindowClass := TJvBalloonWindow;
Application.ShowHint := FALSE;
Application.ShowHint := TRUE;
で出来ました。
# Delphi7+JVCL3.00Beta1
やはりバルーンのリージョンは自前で用意しているようですね。
できました!!感激です!!ありがとうございました!!
でも・・・かなり多くのファイルが無いとコンパイルできなかったので、
必要な部分だけ抽出するのが大変そうですが、頑張ってみます。
> 必要な部分だけ抽出するのが大変そう
選択インストールも出来たと思います。
当てずっぽうですがJvCore とJvStdCtrls とJvNoVisual だと思います。
ツイート | ![]() |