to agui 我用在控件上怎么不行 unit Unit1;interfaceuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; procedure edit1Mousein(var msg : TMessage);message CM_MOUSEENTRY; procedure edit1MouseOUT(var msg : TMessage);message CM_MOUSELEAVE; private { Private declarations } public { Public declarations } end; var Form1: TForm1;implementation{$R *.DFM}procedure TForm1.edit1Mousein(var msg : TMessage); begin form1.Caption :='in'; end;procedure TForm1.edit1Mouseout(var msg : TMessage); begin form1.Caption :='out'; end;end.
CM_MOUSEENTER CM_MOUSELEAVE 必须自己继承控件,因为这不是Windows的标准消息。 在Form中声明两个函数: procedure CMMouseEnter(var msg:tmessage);message CM_MOUSEENTER; procedure CMMouseLeave(var msg:tmessage);message CM_MOUSELEAVE; 实现部分如下: procedure Form.CMMouseEnter(var msg:tmessage); var obj:TObject; begin obj:=Tobject(msg.lParam);//鼠标所在的控件 if obj<>nil then begin //确定控件的类型 //你的处理 end; end;procedure Form.CMMouseLeave(var msg:tmessage); var obj:TObject; begin obj:=Tobject(msg.lParam);//鼠标所在的控件 if obj<>nil then begin //确定控件的类型 //你的处理 end; end;
Procedure TForm1.MouseEn(Var Message: TMessage);
begin
Self.Caption:='Mouse Over';
end;
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations } Procedure MouseEn(Var Message: TMessage); Message CM_MouseEnter;
//Procedure MouseOut(Var Message: TMessage); Message CM_MouseLeave; end;var
Form1: TForm1;implementation{$R *.DFM}Procedure TForm1.MouseEn(Var Message: TMessage);
begin
Self.Caption:='Mouse Over';
end;end.
这样就完整了!
Apollo47(阿波罗):你都从哪里学来的啊?有没有材料教我们也学一学吧[email protected]谢谢
我要实现类似于oicq的效果,怎么实现 啊
可以继续加分
我用在控件上怎么不行
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Edit1: TEdit;
Edit2: TEdit;
procedure edit1Mousein(var msg : TMessage);message CM_MOUSEENTRY;
procedure edit1MouseOUT(var msg : TMessage);message CM_MOUSELEAVE; private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;implementation{$R *.DFM}procedure TForm1.edit1Mousein(var msg : TMessage);
begin
form1.Caption :='in';
end;procedure TForm1.edit1Mouseout(var msg : TMessage);
begin
form1.Caption :='out';
end;end.
CM_MOUSELEAVE
必须自己继承控件,因为这不是Windows的标准消息。
在Form中声明两个函数:
procedure CMMouseEnter(var msg:tmessage);message CM_MOUSEENTER;
procedure CMMouseLeave(var msg:tmessage);message CM_MOUSELEAVE;
实现部分如下:
procedure Form.CMMouseEnter(var msg:tmessage);
var
obj:TObject;
begin
obj:=Tobject(msg.lParam);//鼠标所在的控件
if obj<>nil then
begin
//确定控件的类型
//你的处理
end;
end;procedure Form.CMMouseLeave(var msg:tmessage);
var
obj:TObject;
begin
obj:=Tobject(msg.lParam);//鼠标所在的控件
if obj<>nil then
begin
//确定控件的类型
//你的处理
end;
end;