5

2番目のフォームを1番目のフォームのコンポーネント(TLabelなど)のヒントウィンドウとして使用する方法を見つけようとしています。

THintWindow現在、との使用法を検討していますがHintWindowClass、にを直接割り当てることはできませTFormHintWindowClass。これまで見てきたいくつかの例では、を使用してTBitmapいますがTHintWindow.Canvas、これは悪くはありませんが、何らかの統合された自動メカニズムを使用したいと思います。

私の頭に浮かんだもう1つの解決策は、前述のTlabelのイベントを使用OnMouseEnterOnMouseMoveてこの機能を手動で実装することです。OnMouseLeave

にを「割り当てる」方法が実際にある場合は、これを示すコードスニペットを誰かが提供できるかどうかを尋ねたいと思いますTFormHintWindowClassありがとう。

4

1 に答える 1

12

THintWindowの子孫ですTCustomControl。はこれらのクラスのいずれの子孫でもないため、にクラスをTForm割り当てることはできません。ヒントウィンドウは。から降りる必要があります。あなたがフォームに置くことができるものは何でもあなたはまた置くことができます。手動でインスタンス化し、プロパティを割り当てて表示する必要があります。TFormHintWindowClassTHintWindowTHintWindowParent

ヒントウィンドウを「視覚的に」設計するのにおそらく最も近いのは、フレームを設計することです。子孫THintWindowにフレームのインスタンスを作成させてから、オーバーライドActivateHint(およびActivateHintData、データが必要な場合は)して、ヒントテキストと目的のサイズをフレームに転送します。

于 2011-01-27T15:11:01.150 に答える