4

TTreeViewに関連付けられたTPopupMenuがありますが、ユーザーが特定のノードをクリックしたときにのみメニューを呼び出し(ポップアップ)したいと思います。では、ツリービューでコンテキストメニューをポップアップする方法はありますが、特定のツリーノードでポップアップする方法はありますか?

4

2 に答える 2

11

Handledイベントのパラメーターを使用しますOnContextPopup。このパラメーターを True に設定すると、コンテキスト メニューが表示されなくなります。次のコードは、イベントにTTreeNode渡されたカーソル位置からを取得する方法を示しています。一番上のものとは異なるものOnContextPopupを右クリックした場合にのみ、ポップアップ メニューが表示されます。TTreeNode

procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
begin
  if TreeView1.GetNodeAt(MousePos.X, MousePos.Y) = TreeView1.TopItem then
    Handled := True;
end;
于 2012-04-15T19:56:36.113 に答える
1

これは役立つかもしれません:

procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
  var Handled: Boolean);
  var node : TTreeNode;
begin
  node := TreeView1.GetNodeAt(MousePos.X, MousePos.Y);
  if not Assigned (node) then
    Abort;
end;
于 2014-01-10T04:50:42.190 に答える