Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.06.26;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.026 c
3-83925
Silver_
2003-06-03 12:15
2003.06.26
if CurrentRecord.IsLocked(ByOtherUser) then...


1-84383
inspirion
2003-06-09 10:24
2003.06.26
Отмена закрытия приложения


3-83903
RazorbladE
2003-06-03 11:52
2003.06.26
Отображение данных из SQL запроса dbExpress MySQL.


1-84256
LamuS
2003-06-08 22:12
2003.06.26
Младшая цифра


1-84412
AbrosimovA
2003-06-06 16:54
2003.06.26
Выполнение процедуры в потоке





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский