idUDPClient的OnStatus事件(50分)

  • 主题发起人 主题发起人 linuxping
  • 开始时间 开始时间
L

linuxping

Unregistered / Unconfirmed
GUEST, unregistred user!
IdUDPClient只有一个事件----OnStatus
它在什么时候被触发呢?我不知道.
于是去看源码: TIdUDPClient ---> TIdUDPBase---> TIdComponent--->TIdBaseComponent.
在TIdBaseComponent类里看到了OnStatus事件的定义:
.........
protected
FOnStatus: TIdStatusEvent;
..........
在DoStatus里被调用了:
procedure TIdComponent.DoStatus(AStatus: TIdStatus);
begin
DoStatus(AStatus, []);
end;

procedure TIdComponent.DoStatus(AStatus: TIdStatus; const aaArgs: array of const);
begin
//We do it this way because Format can sometimes cause
//an AV if the variable array is blank and there is something
//like a %s or %d. This is why there was sometimes an AV
//in TIdFTP
if assigned(OnStatus) then begin
if Length(aaArgs)=0 then
OnStatus(Self, AStatus, Format(IdStati[AStatus], [''])) {Do not Localize}
else //<----------OnStatus被调用的地方
OnStatus(Self, AStatus, Format(IdStati[AStatus], aaArgs));
end;
end;
可是,沿着继承链追朔上去,却没有发现任何地方调用了OnStatus或DoStatus.....
也就是说IdUDPClient里的OnStatus事件根本不会被触发~~~是个没有用的事件?!

还请高手指点...
 
后退
顶部