2012-04-13 3 views
0

Мой код создает несколько TidTCPClients, а затем добавляет ссылки на них в TThreadList.Отправка команд в список TidTCPClients

Я надеялся, что посылать команды на всех из них, а затем с помощью

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

(это, очевидно, лишь небольшая часть кода).

Однако я получаю две ошибки:
[DCC Error] Client.pas (261): E2149 Класс не обладает свойством по умолчанию
[DCC Error] Client.pas (262): E2233 недвижимости «IOHandler 'недоступно здесь

и после краткого чтения This Я не мудрее о том, как это сделать, но определенно начинаю думать, что я нахожусь на неправильном пути целиком.

Может ли кто-нибудь указать мне правильное направление?

+2

См [док] (http://docwiki.embarcadero.com/VCL/en/Classes.TThreadList), как работать 'TThreadList'. LockList и UnlockList плюс как обращаться к объектам в списке TidTCPClient (список [I]). IOHandler. –

ответ

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; 
+1

+1 (Ударьте меня на него ). Лучшей ссылкой на документы может быть [образец кода TThreadList] (http://docwiki.embarcadero.com/CodeExamples/XE2/en/TThreadList_%28Delphi%29) вместо этого, хоть. –

+0

Спасибо, я просто набрал именно это, основываясь на вашем комментарии! –

 Смежные вопросы

  • Нет связанных вопросов^_^