OnMouseDown事件为什么只有鼠标右键点击才有反应呢?请教高手如何改为左键反应?
多谢啦!

解决方案 »

  1.   

    Image1是自定义图像控件,并没有定义任何事件
    Image1.OnMouseDown:= MyOnMouseDown; //把下面过程赋给Image1procedure Tfrmnodelay.MyOnMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      showmessage('aa');
    end;
    结果是右键点击图像才响应过程MyOnMouseDown?
    我试验了新建一普通Image,其OnMouseDown事件是左右键都响应的。
      

  2.   

    ??我回的没成功么?
    procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
         if button=mbLeft then ShowMessage('left')
         else if button=mbright then ShowMessage('right');
    end;
      

  3.   

    TO:hellolongbin(一个人)
    我试了下,但是点击鼠标左键,并不进入MyOnMouseDown过程里面?
      

  4.   

    也就是说不执行过程MyOnMouseDown
      

  5.   

    点击右键时执行过程MyOnMouseDown的
      

  6.   

    不是MyOnMouseDown的问题,肯定是其它地方的代码有问题了,这种事情不可能的,鼠标点下事件左右键都可以触发的。别把注意力放在这个MyOnMouseDown上,看看其他代码段...
      

  7.   

    你要不先做一个edit的事件,然后Image1.OnMouseDown:=Edut1MonseDown; 运行一次之后在把edit的事件去掉。。我碰到过一次这样的问题,,,最后好象就是这么碰的解决了~
    procedure TForm1.Edit1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
      

  8.   

    不知道你用的是哪个版本的Delphi
    我的没有任何问题(D7)
    procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    Var
      s: String;
    begin
      case Button of
        mbLeft: s:='Left';
        mbRight: s:='Right';
        mbMiddle: s:='Middle';
      else
        s:='Other'
      end;
      Label1.caption:=s+' Down';end;procedure TForm1.Label1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      Label1.caption:='Ready!'
    end;