【问题标题】:Sending commands to a list of TidTCPClients向 TidTCPClients 列表发送命令
【发布时间】:2012-04-14 06:55:36
【问题描述】:

我的代码创建了几个 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 Property 'IOHandler' inaccessible here

在简要阅读了This 之后,我对如何做到这一点一点也不了解,但肯定开始认为我完全走错了路。

谁能指出我正确的方向?

【问题讨论】:

  • 查看doc如何操作TThreadList。 LockList 和 UnlockList 以及如何处理列表中的对象 TidTCPClient(list[I]).IOHandler.

标签: delphi indy indy10


【解决方案1】:

查看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;

【讨论】:

  • +1(打败我。)不过,更好的文档链接可能是TThreadList code sample
  • 谢谢,我刚刚根据您的评论准确地输入了!
猜你喜欢
  • 1970-01-01
  • 2021-09-22
  • 1970-01-01
  • 1970-01-01
  • 2010-11-14
  • 1970-01-01
  • 2016-11-06
相关资源
最近更新 更多