利用Delphi50自带的image控件如何实现图像的三态图 (50分)

  • 主题发起人 jianhuach
  • 开始时间
图象的三态图是什么意思?能否说明白点???
 
三态图就是指:当鼠标移动到图片上时,按下图片时和释放鼠标时的三种状态
 
这都要写程序实现的。
 
这就是3态图???举个简单的例子 :
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Cursor :=crCross;
end;

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
Image1.Cursor :=crHourGlass;
end;

procedure TForm1.Image1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.Cursor :=crDefault;
end;
当你按下鼠标时,鼠标为crCross,移动时为crHourGlass,抬起时为crDefault。
 
比较麻烦,我通常的做法是把Image加了两个事件。
mouseenter
mouseleave
这样就ok.
 
林沐: 您能否对mouseenter 和mouseleave事件说明白一点,具体做法。
 
如:
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;

procedure TSomeForm.CMMouseEnter(var Msg: TMessage);
var
anObject: TObject;
begin
anObject := TObject(Msg.lParam);
if anObject = image1 then
begin
//想做什么,自己写啦
end;
end;


 
如:
procedure CMMouseEnter(var Msg: TMessage); message CM_MOUSEENTER;

procedure TSomeForm.CMMouseEnter(var Msg: TMessage);
var
anObject: TObject;
begin
anObject := TObject(Msg.lParam);
if anObject = image1 then
begin
//想做什么,自己写啦
end;
end;


 
可以参考
http://vcl.vclxx.org/DELPHI/D32FREE/IMGBTN.ZIP
的源代码
 
接受答案了.
 
顶部