您当前的位置:delphi教程 > Delphi组件开发 > 这个判断鼠标右键点击应该写在什么地方?

这个判断鼠标右键点击应该写在什么地方?

问题是这样,我要在一个控件上右键点击弹出我的菜单,这个控件没有click类的方法,所以采取用函数获取鼠标是否指上它,然后点击弹出菜单,但触发这个点击开始的事件,不知道写在哪里,所以我写在form2.onmousedown里面,但是出错,原因是还要判断是否右键点击,请大家指教一下  
   
   
  function   GetFormNameAt   (   X,   Y   :   integer   )   :   string;  
      var  
      P:TPoint;  
      W:TWinControl;  
      begin  
      P.X   :=   X;  
      P.Y   :=   Y;  
      W   :=   FindVCLWindow(P);   //得到鼠标指针下的VCL可视组件  
    if   (   nil   <>   W   )   then  
      begin  
      if   w.name   =   'china'   then   //当W的名字为china时(china控件无点击属性但又要右键点他弹出菜单)  
      Result   :=   W.Name;//最后返回控件的名称Name  
      end  
      else  
      begin  
      Result   :=   '';  
      end;  
      end;  
   
  procedure   TForm2.Timer1Timer(Sender:   TObject);  
      var  
      winPos:TPoint;  
      begin  
      GetCursorPos(winpos);   //得到当前鼠标指针的在屏幕上的坐标  
      //当鼠标指针下的窗体的Name等于china.name时  
      if   china.name=GetFormNameAt(winpos.X,winpos.Y)   then  
   
      begin  
          PopupMenu1.Popup(winpos.X,   winpos.Y);  
      end;  
  end;  
   
  procedure   TForm2.FormMouseDown(Sender:   TObject;   Button:   TMouseButton;  
      Shift:   TShiftState;   X,   Y:   Integer);  
  begin  
          if   button   =   mbright     then  
          begin  
          self.Timer1.Enabled   :=true;  
          end;  
  end;


查看回复
关于我们 | 网站地图 | 广告刊登 | 友情链接
Copyright ©2008 - 2010  Delphi2007.net  ,All Rights Reserved  粤ICP备09038647号
业务联系:allceoad#gmail.com QQ:20008835 最佳分辨率 1024×768