ツリー ビューのアイテムの 5 つのサブアイテムに対して 5 つのカスタム ヒントをすばやく作成する方法はありますか?
TreeView、1 つのアイテム、5 つのサブアイテムがあります。SubItem ごとに特別なヒントが必要です (最初のヒントは "F1"、2 番目のヒントは "F2" など)。
これを私の目的に適用することはできません: http://delphi.about.com/od/vclusing/a/treenode_hint.htm ?
ツリー ビューのアイテムの 5 つのサブアイテムに対して 5 つのカスタム ヒントをすばやく作成する方法はありますか?
TreeView、1 つのアイテム、5 つのサブアイテムがあります。SubItem ごとに特別なヒントが必要です (最初のヒントは "F1"、2 番目のヒントは "F2" など)。
これを私の目的に適用することはできません: http://delphi.about.com/od/vclusing/a/treenode_hint.htm ?
OnHint
イベントが必要なようです。
procedure TMyForm.TreeView1Hint(Sender: TObject; const Node: TTreeNode; var Hint: string);
begin
Hint := Node.Text;
end;
時々、この方法は少し粗雑で、Node
明らかにホバリングしていないことを提供することがあります。より詳細な制御が必要な場合はGetNodeAt
、次を使用できますGetHitTestInfoAt
。
procedure TMyForm.TreeView1Hint(Sender: TObject; const Node: TTreeNode; var Hint: string);
var
P: TPoint;
MyNode: TTreeNode;
HitTestInfo: THitTests;
begin
P := TreeView1.ScreenToClient(Mouse.CursorPos);
MyNode := TreeView1.GetNodeAt(P.X, P.Y);
HitTestInfo := TreeView1.GetHitTestInfoAt(P.X, P.Y) ;
if htOnItem in HitTestInfo then begin
Hint := MyNode.Text;
end else begin
Hint := '';
end;
end;
の定義THitTests
は次のとおりです。
type
THitTest = (htAbove, htBelow, htNowhere, htOnItem, htOnButton, htOnIcon,
htOnIndent, htOnLabel, htOnRight, htOnStateIcon, htToLeft, htToRight);
THitTests = set of THitTest;
ご覧のとおり、これにより、ヒントとして表示するタイミングと内容をきめ細かく制御できます。
それに応じてコンポーネントのヒントを設定しますOnMouseMove
(または、マウス座標を提供する他のイベントから、マウスが置かれているアイテムを取得できます-名前を間違えた可能性があり、現時点ではDelphiがありません)。