2

ツリー ビューのアイテムの 5 つのサブアイテムに対して 5 つのカスタム ヒントをすばやく作成する方法はありますか?

TreeView、1 つのアイテム、5 つのサブアイテムがあります。SubItem ごとに特別なヒントが必要です (最初のヒントは "F1"、2 番目のヒントは "F2" など)。

これを私の目的に適用することはできません: http://delphi.about.com/od/vclusing/a/treenode_hint.htm ?

4

2 に答える 2

4

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;

ご覧のとおり、これにより、ヒントとして表示するタイミングと内容をきめ細かく制御できます。

于 2011-06-16T19:58:19.493 に答える
1

それに応じてコンポーネントのヒントを設定しますOnMouseMove(または、マウス座標を提供する他のイベントから、マウスが置かれているアイテムを取得できます-名前を間違えた可能性があり、現時点ではDelphiがありません)。

于 2011-06-16T16:17:25.753 に答える