怎样做鼠标移动,离开图片框,图片变化?

解决方案 »

  1.   

    procedure TfrmReportSeedWarehouse.Image1MouseMove(Sender: TObject;
          Shift: TShiftState; X, Y: Integer);
    begin
       if x>Image1.right or X<Image1.left or Y<Image1.top or Y>Image1.Bottom then 
         //改变图片
    end;
      

  2.   

    在图片框声明一个私有过程,
    procedure CMMouseleave(var msg:tmessage);message CM_MOUSELEAVE;
    在实现部分:
    procedure tpaintbox1.CMMoustleave(var msg:tmessage);
    begin
      写入具体的过程;
    end;
      

  3.   

    全给你贴上吧:
    ...
    uses Jpeg;type
      TForm1 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;
        procedure CMMouseLeave(var Msg: TMessage); message CM_MOUSELEAVE;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.CMMouseEnter(var Msg: TMessage);
    var
      img: TImage;
    begin
      img := TImage(Msg.LParam);
      if (img <> nil) and (img.Name = 'Image1') then
        img.Picture.LoadFromFile('d:\a.jpg')
    end;procedure TForm1.CMMouseLeave(var Msg: TMessage);
    var
      img: TImage;
    begin
      img := TImage(Msg.LParam);
      if (img <> nil) and (img.Name = 'Image1') then
        img.Picture.LoadFromFile('d:\b.jpg')
    end;end.
      

  4.   

    我照楼上的写了, 不过我的图片是Image2 , 只是改了这里,
    我试过当鼠标移动到我要的图片上时根本没有通过
    if (img <> nil) and (img.Name = 'Image2') then这里的判断,是不是找不到Image2呢?真是急死了, 从星期六到现在还未解决这问题帮帮忙吧
      

  5.   

    我试过了, 因为我在pic的下边放了一个Panel1 , 所以img.name的值每次都是Panel1, 这要怎么办才好呢?