当鼠标右键在ListBox和TreeView中点击时,如何设置先执行选中item的操作,然后再弹出菜单,说的简单点就是,如何用右键选中item?
谢谢!

解决方案 »

  1.   

    procedure TEMapTree.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      Pt: TPoint;
    begin
      if mbRight = Button then
      begin
        if PopupMenu.Items.Find(Tree_RButtonSelect).Checked then
          Perform(wm_Lbuttondown, 0, (y shl 16) + x);
        Pt := ClientToScreen(Point(X,Y));
        PopupMenu.Popup(Pt.X,Pt.Y);
      end;
      inherited;
    end;
      

  2.   

    这个办法好像不是很好吧这样做只是手动的把menu 弹出来,而item 并没有选中
    TreeView1.Selected 仍然是 nil我需要的是先选中,然后弹出菜单
      

  3.   


    procedure TForm1.TreeView1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if mbRight = Button  then
      begin
        TreeView1.Perform(wm_Lbuttondown, 0, (y shl 16) + x)
          
      end;
    end;