各位大虾请进:如何捕获鼠标在控件中的子控件上面移动的消息(我的控件包括n个子控件),一个极简单的问题,请各位大虾多多指点!200大分送上!(200分)

  • 主题发起人 主题发起人 childboy
  • 开始时间 开始时间
先找到所有的子控件然后写个for循环得到控件名称及类型,然后设置对象的.onmousemove事件调用的方法
这里就是Object的类型比较难确定,比如说TButton(button1).onmousemove,这里的TButton就比较难写,呵呵
 
这个问题我前一段时间刚刚问过这个问题,当时解决办法如下:
----------------------------------------------------------------------------
constructor TRJ.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
...

//´´½¨×ӿؼþ£¨ÈçImage£©
ImageShow:=TImage.Create(self);
...
ImageShow.OnMouseMove := ImageOnMouseMove;
...
end;

procedure TRJ.ImageOnMouseMove(Sender: TObject; Shift: TShiftState; X,Y: Integer);
begin
MouseMove(Shift, ImageShow.Left + X, ImageShow.Top + y);
end;
-------------------------------------------------------------------------
TRJ是自定义的组合控件,包含一个子控件ImageShow(TImage),这样有多个子控件的时候就得
为每个子控件在构造函数中添加这一句:
子控件.OnMouseMove := ImageOnMouseMove;
 

Similar threads

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