ICS源码看不懂 ( 积分: 50 )

  • 主题发起人 主题发起人 hlfysj
  • 开始时间 开始时间
H

hlfysj

Unregistered / Unconfirmed
GUEST, unregistred user!
这是ICS中的源码:
type
TAsyncCmd = procedure of object
private
procedure ExecuteCmd(SyncCmd : TSyncCmd; ASyncCmd : TAsyncCmd);


procedure ExecuteCmd(SyncCmd : TSyncCmd; ASyncCmd : TAsyncCmd);
begin
if SyncCheckBox.Checked then begin
if SyncCmd then
DisplayMemo.Lines.Add('Command Success')
else
DisplayMemo.Lines.Add('Command Failure');
end
else
ASyncCmd;
end;

这个ASyncCmd是什么东西呀,只是这样定义了一下:ASyncCmd : TAsyncCmd,就直接用了,而TAsyncCmd仅这样声明了一下 TAsyncCmd = procedure of object, 怎么没有具体的实现就可以用了呢,不明白,请高手给解释一下这段程序吧,谢了
 
这是ICS中的源码:
type
TAsyncCmd = procedure of object
private
procedure ExecuteCmd(SyncCmd : TSyncCmd; ASyncCmd : TAsyncCmd);


procedure ExecuteCmd(SyncCmd : TSyncCmd; ASyncCmd : TAsyncCmd);
begin
if SyncCheckBox.Checked then begin
if SyncCmd then
DisplayMemo.Lines.Add('Command Success')
else
DisplayMemo.Lines.Add('Command Failure');
end
else
ASyncCmd;
end;

这个ASyncCmd是什么东西呀,只是这样定义了一下:ASyncCmd : TAsyncCmd,就直接用了,而TAsyncCmd仅这样声明了一下 TAsyncCmd = procedure of object, 怎么没有具体的实现就可以用了呢,不明白,请高手给解释一下这段程序吧,谢了
 
事件
应该还有个TAsyncCmd类型的属性吧,比如Onx读写ASyncCmd
在用户使用控件时给事件Onx赋值,类似于OnClick等,这里调用ASyncCmd
就是调用用户写的代码
 
TAsyncCmd 就是一个对象方法了.

例如:常见的一些事件都是procedure (Sender: TObject) of object;
 
事件方法(过程)作为一个传递参数而已啦
 
TAsyncCmd = procedure of object

定义了一个过程指针
比如你定义了一个过程和一个TAsyncCmd类型的变量
procedure myproc;
begin

end;

ASyncCmd : TAsyncCmd

则可 进行赋值 ASyncCmd := myproc;
 
后退
顶部