让我头昏的语法问题,大家教教我!!(100分)

  • 主题发起人 主题发起人 arraiy
  • 开始时间 开始时间
A

arraiy

Unregistered / Unconfirmed
GUEST, unregistred user!
[:(]我是个delphi新手,对有些delphi语法我搞不懂,请教一下大家:
举个例子,窗体中一个Edit1组件,编写其的MouseDown事件如下
procedure TForm1.Edit1MouseDown(Sender: TObject;
Button: TMouseButton;
Shift: TShiftState;
X, Y: Integer);
const
SC_DragMove=$F012;
begin
ReleaseCapture ;
(Sender as TWinControl).Perform(WM_SysCommand,SC_DragMove,0);
end ;
编译运行效果是实现鼠标拖动edit1组件可以让它移动,可我不明白其中的那几条
语句的意思,请大家帮我分析一下好吗?
关于什么Sender、as、self、函数名(WM_SysCommand,SC_DragMove,0) 带的参数是什么WM_
什么的,这些都是什么意思啊?书上又不讲清楚,让我们这些初学者摸头不知脑。谢谢各了!
 
大家帮帮我啊,能帮我看看吗?
 
sender就是触发该事件的控件,即Edit1;
as 是类型转换,因为TEdit是TwinControl子类
WM是Windows Message的简称,用来向Win API函数传递参数
 
先把基础好好看来,好吗?
 
ReleaseCapture 不进行鼠标消息的正常捕捉!
Sender as TWinControl将sender 强制转换成 TWincontrol,
一般来说这个sender是从TWincontrol继承的。
因为函数声明中的 TObject 类型不能进行以下的消息处理。
WM_SysCommand:表示“SC_DragMove”是系统命令消息。
 

Similar threads

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