Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Idtelnet в отдельном потоке.


Автор: ArthurX 24.9.2010, 16:19
Здравствуйте.

В главном потоке данные забираются и обрабатываются без проблем:

Код

procedure Ttest.IdTelnetDataAvailable(Sender: TIdTelnet; const Buffer: String);
  begin
bla bla bla;
  end;


Понадобилось полностью убрать компонент idTelnet, создавать его в потоке и осуществлять работу с ним также в потоке:
Создаю поток. Выполняю свой код в потоке:

Код

procedure TNewThread.Execute;
begin
  Tel := TIdTelnet.Create(nil);
  Tel.Host := 'ip_address';
  Tel.Connect;
   .............
end;


Каким образом теперь мне забирать данные из "IdTelnetDataAvailable" внутри моего потока?
Хотя бы наставьте на путь истинный, а то год к Делфи не прикасался  smile 
Спасибо.

Автор: ArthurX 24.9.2010, 18:23
...

Автор: Matematik 24.9.2010, 20:42
В общем-то так же, тлько IdTelnetDataAvailable надо создать руками и привязать к компоненту.

Код

type
  TTelnetThread = class(TThread)
  private
    procedure IdTelnetDataAvailable(Sender: TIdTelnet; const Buffer: String);    
  end;

{...}

procedure TTelnetThread..Execute;
begin
 Tel := TIdTelnet.Create(nil);
  Tel.OnDataAvailable = IdTelnetDataAvailablee;
end

procedure TTelnetThread.IdTelnetDataAvailablee(Sender: TIdTelnet; const Buffer: String);    
begin
  
end;

Автор: ArthurX 30.9.2010, 09:38
Спасибо.

Работает  smile 


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)