现在再Tdbcontrol.TreeView1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
中写入代码
showmessage('');treeview的反映是先弹出以前设定好的popmenu再showmessage
如何再弹出popmenu前进行操作
或者截获右键菜单弹出消息之类???

解决方案 »

  1.   

    在MouseDown中写代码试试,
    另外可以不要设定popmenu,自己弹出.
    注意如果自己弹出一定在弹出之前使用
    TreeView.Items.BeginUPdate
    最后使用
    ...EndUpdate
      

  2.   

    1 postmessage(handle,usermessage)
    2 在消息处理中再写 showmessage()
      

  3.   

    procedure TForm1.TreeView1ContextPopup(Sender: TObject; MousePos: TPoint;
      var Handled: Boolean);
    var
      tn : TTreeNode;
    begin
      tn:=TreeView1.GetNodeAt(MousePos.X,MousePos.Y);
      if tn<>nil then TreeView1.Selected:=tn
      else 
      begin 
        Handled:=True; Exit; 
      end;
      if tn.Text='aaa' then
      begin
        TreeView1.PopupMenu:=PopupMenu1;
      end;
      if tn.Text='bbb' then
      begin
        TreeView1.PopupMenu:=PopupMenu2;
      end;
      ...
    end;