0

私のコードはいくつかのTidTCPClientを作成し、それらへの参照をTThreadListに追加します。

私はそれからそれらすべてにコマンドを送ることを望んでいました

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

(これは明らかにコードのごく一部にすぎません)。

ただし、次の2つのエラーが発生します。
[DCCエラー] Client.pas(261):E2149クラスにデフォルトのプロパティがありません
[DCCエラー] Client.pas(262):E2233プロパティ「IOHandler」にアクセスできません

そして、これを簡単に読んだ後、私はこれを行う方法について賢明ではありませんが、間違いなく私は完全に間違った方向に進んでいると思い始めています。

誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

3

操作方法については、ドキュメントを参照してくださいTThreadListTidTCPClientまた、リストには型指定されていないポインターしか含まれていないため、リスト内のオブジェクトを型キャストする必要があります。

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 に答える