procedure TfrmMain.ImageBackMouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  if  ImageBack.Left= 8 then
    ImageBack.Left := 9
  else
    ImageBack.Left := 8;
end;本想让鼠标移动到 ImageBack 就将其 ImageBack.Left := 9 ,鼠标离开便 ImageBack.Left := 8;我这么写却是图片不停的移动!这都不没解决。有点不好意思!^_^

解决方案 »

  1.   

    要在Form窗口写鼠标离开窗口的事件
      

  2.   

    type
      TImage = class(ExtCtrls.TImage)
      private
        procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
        procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
      end;procedure TImage.CMMouseEnter(var Message: TMessage);
    begin
      left:= 9;
    end;procedure TImage.CMMouseLeave(var Message: TMessage);
    begin
      left:= 8;
    end;
      

  3.   

    谢谢  xixuemao(一点技术含量都没有) !!
      

  4.   

    楼主:xixuemao(一点技术含量都没有)  我要对都张图片进行移动呢
    type
      TImage = class(ExtCtrls.TImage)
      private
        procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
        procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
      end;var
      ImageLength :Integer; //图片原始 left 位置
    implementationprocedure TImage.CMMouseEnter(var Message: TMessage);
    begin
      left:= ImageLength +1 ;
    end;procedure TImage.CMMouseLeave(var Message: TMessage);
    begin
      left:= ImageLength ;
    end;
      

  5.   

    接上
    procedure TfrmMain.ImageForwardMouseMove(Sender: TObject;
      Shift: TShiftState; X, Y: Integer);
    begin
        ImageLength:=ImageForward.Left;
    end;procedure TfrmMain.ImageStopMouseMove(Sender: TObject; Shift: TShiftState;
      X, Y: Integer);
    begin
      ImageLength:=ImageStop.Left;
    end;还是有问题。ImageLength 的值不稳定
    怎么解决呢