将命令发送到TidTCPClients列表

时间:2012-04-13 22:12:24

标签: delphi indy indy10

我的代码创建了几个TidTCPClients,然后在TThreadList中添加对它们的引用。

我希望通过

向所有人发送命令
for I := 0 to (NumClients - 1) do
begin
  ClientList[I].IOHandler.WriteLn('Whatever');
end;

(这显然只是代码的一小部分)。

但是我遇到两个错误:
[DCC错误] Client.pas(261):E2149类没有默认属性
[DCC错误] Client.pas(262):E2233属性'IOHandler'在这里无法访问

在简短阅读This之后,我对如何做到这一点毫不明智,但绝对开始认为我完全走错了路。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:3)

请参阅doc如何操作TThreadList。您还需要在列表中键入强制转换TidTCPClient对象,因为它只包含无类型指针。

var
  list: TList;
...
list := ClientList.LockList;
try
  for I := 0 to list.Count - 1 do
  begin
    TidTCPClient(list[I]).IOHandler.WriteLn('Whatever');
  end;
finally
  ClientList.UnlockList;
end;