我做一个图片按钮,要达到这样的效果:
1.鼠标移上去时换一个图片,按下去时换另一个图片,移开时,是默认的显示图片。
2.只能左键点击。
下在是我写的一点代码,因为刚学DELPHI,有些函数方法都不清楚,请大家指点一下,最好能有点代码  procedure TForm1.Image1Click(Sender: TObject); //在 Image1 的 OnClick 事件中写入
  begin
    PopupMenu1.Popup(Image1.ClientOrigin.X,Image1.ClientOrigin.y+30);  //放入一个弹出式菜单控件并设置
  end;
蛮急,谢谢大家了!

解决方案 »

  1.   

    不是在按钮上写的嘛???
    你可以直接在BUTTON上的IMAGES 属性上写入一些图片啊。
    然后在BUTTON上面ONCLICK 事件,ONMOVE 事件,只要改变那IMAGEINDEX的值就可以改变图标了吧
      

  2.   

    你是不是要做个按钮啊。你怎么写的是image的单击事件。
    在窗体上加一个bitbtn
    分别在bitbtn的
      MouseMove  移上去的事件
      MouseUp   离开的事件
      MouseDown 点下的事件
    中写  
      BitBtn1.Glyph.LoadFromFile('bmp图片');
      

  3.   

    做过,用image代替按钮,成为一个全图型的按键,
    delphi没有找到ownerdraw属性,所以就这样做了MouseMove事件,代表鼠标已经在image中了,设定一个图片
    MouseDown事件,MouseUp事件,分别代表按下和弹起事件
    MouseLeave事件是没有,但可以通过如下方式实现
    MouseMove -> 判断是不是在本区域内 -> 是,则SetCapture,不是,则表明鼠标移出,换图片ReleaseCApture不过在Delphi下的SetCapture和ReleaseCapture好象有点问题,多试试吧
      

  4.   

    procedure TForm1.BitBtn1MouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    begin
        BitBtn1.Glyph.LoadFromFile(ExtractFilePath(Application.ExeName)+'2.bmp');
    end;procedure TForm1.BitBtn1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
         BitBtn1.Glyph.LoadFromFile(ExtractFilePath(Application.ExeName)+'3.bmp');
    end;
      

  5.   

    真是太谢谢楼上的了,我以前是学ASP的,老是用JAVASCRIPT的思路在想, 不晓得,BITBTN有这个方法!
      

  6.   

    把分数都给楼上的 hellolongbin(一个人[.net学习中……]) 吧,回答得多好啊,呵呵,我就不来争了...其实我还欠他很多分哪...
      

  7.   

    其实在mousemove里规范的写法应该是加载之前判断一下,否则鼠标一动就加载,会把程序累死的