当鼠标移入和移出image时,如何使image产生反应?(30分)

  • 主题发起人 主题发起人 bluebob
  • 开始时间 开始时间
B

bluebob

Unregistered / Unconfirmed
GUEST, unregistred user!
有无OnmouseEnter事件?
 
没有,
自己加进去吧。

参见<a href="http://202.120.85.61/delphibbs/DispQ.asp?LID=150249">这里</a>
 
重说一遍!
1.当鼠标移入和移出image时,如何使image产生反应?
2.有无OnmouseEnter事件?
 
呵呵,
还是没有;-)

这样处理一下,不知能否满足你的要求:
TmyImage=class tImage
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;

再在实现中:
procedure TmyImage.CMMouseEnter(var Message: TMessage);
begin
//进入事件
end;
procedure TmyImage.CMMouseLeave(var Message: TMessage);
begin
//离开事件
end;
 
amo:
private
{ Private declarations }

procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;

procedure Image3.CMMouseEnter(var Message: TMessage); //line 65//
begin
Image3.picture.loadformfile('d:/main/pics/111g.jpg');
//进入事件
end;
procedure Image3.CMMouseLeave(var Message: TMessage);
begin
Image3.picture.loadformfile('d:/main/pics/111c.jpg');
//离开事件
end;
[Error] main.pas(65): ';' expected but '.' found
 
进入时用mousemove响应不行吗?
自己加个mouseleave.
没有mouseenter.
 
menxin:
自己加个mouseleave?
我不知如何加。
 
//革命尚未成功,同志仍须努力
//注意uses中必须加入extctrls
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Buttons, ExtCtrls, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
TmyImage=class( tImage)
private
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;

end;
var
Form1: TForm1;

implementation

{$R *.DFM}
var
img:tmyimage;

procedure TmyImage.CMMouseEnter(var Message: TMessage);
begin
//进入事件
self.Canvas.TextOut(1,1,'enter');
end;

procedure TmyImage.CMMouseLeave(var Message: TMessage);
begin
//离开事件
self.Canvas.TextOut(1,1,'leave');
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
img:=tmyimage.Create(self);
img.left:=10;
img.Top:=10;
img.Parent:=self;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if img<>nil then img.free;
end;

end.
 
《环保卫士》(SAFE CLEAN ,赵羽珩写的)见过吗?
它的程序界面就是当鼠标移入和移出image时,image产生反应
(所对应的image变色)。我想我的程序也产生那样的效果!
 
BTW!
《环保卫士》中对应的image变色后,程序右边产生一些浮于背景上的文字,如何实现?
Tmemo好象无transparent属性.
 
嘿嘿,
1、没用过.
2、用label或其它第三方控件,如lmd等.
用memo也可以,自己处理一下再用,产生透明效果可以看看
Eyes 提过的方法。
在哪个问题里一下我也找不到了。
再找找看
 
一个不用写控件的方法:
在image的onmousemove 中使本控件变为选中图案
在form 的onmousemove 中使image控件变为非选中颜色

我用这种方法实现过lable 的颜色变化
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
845
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
778
SUNSTONE的Delphi笔记
S
后退
顶部