他是定义了一个类继承组如下:
TTerminalConnectList = class(TList)
public
procedure Add(AEvent: TTerminalConnectEvent);
procedure Remove(AEvent: TTerminalConnectEvent);
procedure Delete(nIndex: integer);
procedure Clear; override;
private
function FGetItem(nIndex: integer): TTerminalConnectEvent;
public
property Items[nIndex: integer]: TTerminalConnectEvent read FGetItem;
end;定义了该类的对象组
_lstConnect: TTerminalConnectList;这段是我不明白的,应该是在代码中对对象添加一个子项吧。
procedure TTerminalNotify.NotifyOnConnect(ASender: TObject;
APoint: TCXZPoint; ASocket: TCustomWinSocket);
var
i: integer;
begin
for i := 0 to _lstConnect.Count - 1 do
begin
_lstConnect.Items[i](ASender, APoint, ASocket);
end;
end;
我不明白的地方是
1、添加子项为什么还用for循环。
2、_lstConnect应该是对象组,它的成员Items[i]是成员,后面接括号好像又成了函数,我的基础不是太好,请熟悉的人能帮我解惑。谢谢!
TTerminalConnectList = class(TList)
public
procedure Add(AEvent: TTerminalConnectEvent);
procedure Remove(AEvent: TTerminalConnectEvent);
procedure Delete(nIndex: integer);
procedure Clear; override;
private
function FGetItem(nIndex: integer): TTerminalConnectEvent;
public
property Items[nIndex: integer]: TTerminalConnectEvent read FGetItem;
end;定义了该类的对象组
_lstConnect: TTerminalConnectList;这段是我不明白的,应该是在代码中对对象添加一个子项吧。
procedure TTerminalNotify.NotifyOnConnect(ASender: TObject;
APoint: TCXZPoint; ASocket: TCustomWinSocket);
var
i: integer;
begin
for i := 0 to _lstConnect.Count - 1 do
begin
_lstConnect.Items[i](ASender, APoint, ASocket);
end;
end;
我不明白的地方是
1、添加子项为什么还用for循环。
2、_lstConnect应该是对象组,它的成员Items[i]是成员,后面接括号好像又成了函数,我的基础不是太好,请熟悉的人能帮我解惑。谢谢!
APoint: TCXZPoint; ASocket: TCustomWinSocket);
var
i: integer;
begin
for i := 0 to _lstConnect.Count - 1 do
begin
_lstConnect.Items[i](ASender, APoint, ASocket);
end;
end;
APoint: TCXZPoint; ASocket: TCustomWinSocket);
这个事件的意思应该不是你所说的增加项目用的。它会不会表示:当_lstConnect与数据库或数据源绑定、链接时所触发(刷新)事件
那它如果是一个类似于数组的TTerminalConnectEvent类型列表,那么调用它里面的过程_lstConnect.Items[i]时参数怎么是NotifyOnConnect事件的参数
而不是 procedure Add(AEvent: TTerminalConnectEvent);
procedure Remove(AEvent: TTerminalConnectEvent);
procedure Delete(nIndex: integer);
procedure Clear; override;
这几个过程的参数呢?
请帮忙解惑!
TTerminalConnectEvent = procedure(Sender: TObject; APoint: TCXZPoint; ASocket: TCustomWinSocket) of object;
但我还是不能理解,该过程又没有什么处理内容,调用本身有什么用处呢?