0

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

我希望通过然后使用向所有人发送命令

for I := 0 to (NumClients - 1) do
begin
  ClientList[I].IOHandler.WriteLn('Whatever');
end;

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

但是我收到两个错误:
[DCC 错误] Client.pas(261): E2149 Class does not have a default property
[DCC Error] Client.pas(262): E2233 Property 'IOHandler' inaccessible here

在简要阅读后,我对如何做到一点并不明智,但肯定开始认为我完全走错了路。

谁能指出我正确的方向?

4

1 回答 1

3

参见文档如何操作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;
于 2012-04-13T22:46:41.557 回答