Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.26;
Скачать: CL | DM;

Вниз

TThread и TIdTelnet   Найти похожие ветки 

 
alt7   (2003-04-21 12:26) [0]

Добрый день. Значится вопрос: есть компонента TIdTelnet, которая получает через сокет данные с сервера. Дабы юзер мог пользоваться интерфейсом паралельно с принятием данных создал TThread.

Вот. У TIdTelnet есть есть событие OnDataAvailable(Buffer: String), этот буфер и хранит то, что нам пришло. Как мне обработать это событие с помощью TThread, если методы, которые там мона описывать без параметров должны быть?


 
ErikIvanov   (2003-04-21 12:36) [1]

А в чем проблема, непонял суть вопроса. Описываеш
IdTelnet: TIdTelnet в нутри TThread. В конструкторе делаеш
IdTelnet.OnDataAvailable = ReciveData;
ReciveData разумеется полжно быть описано в TTherad.


 
Digitman ©   (2003-04-21 12:37) [2]


> методы, которые там мона описывать без параметров должны
> быть?


это кто тебе такую глупость сказал ?
почему же это, позволь полюбопытствовать, метод класса не может иметь параметров ?


 
alt7   (2003-04-21 12:43) [3]

// Это конструктор
constructor TMyThread.Create;
var
Buffer: String;
begin
FreeOnTerminate := True;
* FIDTelnet.IDTelnet.OnDataAvailable := DoS;
inherited Create(false);
end;

// Это функция-обработчик
procedure TMyThread.DoS;
var
STR: String;
begin
FIDTelnet.IDTelnet.ReadBuffer(STR,FIDTelnet.IDTelnet.RecvBufferSize);
FIDTelnet.Memo.Lines.Add(STR);
end;

И хотелось бы в Synchronize вставить DoS.
Но выдает на строке со * -> Incompatible types: parameter lists differ


 
alt7   (2003-04-21 12:54) [4]

Данный вопрос снят. Протупил децл ;))


 
alt7   (2003-04-21 12:58) [5]

Теперь немного по другому.

не могу записать, в синхронайз метод DoS(Buffer: String), пишет что список параметров различен.


 
$hade ©   (2003-04-21 13:54) [6]

А смысл всего этого???
>Дабы юзер мог пользоваться интерфейсом паралельно с принятием данных создал TThread
А почему ты решил что юзер не сможет пользоваться интерфейсом паралельно с принятием данных??
Во-первых есть AntiFreeze...
Во-вторых - посмотри исходник IdTelnet...(там уже используется TThread - TIdTelnetReadThread для получения данных) и соответственно никакой блокировки интерфейса не не будет...и геморроя тоже...



Страницы: 1 вся ветка

Текущий архив: 2003.06.26;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
1-84214
Ig
2003-06-11 19:47
2003.06.26
Подскажите пожалуйста, как поместить значение из TEdit в Timer.In


3-83925
Silver_
2003-06-03 12:15
2003.06.26
if CurrentRecord.IsLocked(ByOtherUser) then...


3-84034
st-av
2003-05-31 18:13
2003.06.26
DBGrid и форматированный ввод


3-84043
Z_man7777
2003-06-02 06:25
2003.06.26
Вопрос по полю типа Float в InterBase6.x


8-84442
reticon
2003-03-08 13:52
2003.06.26
формат файла