![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вопрос о TThread & TClientSocket [D4, D5, D6, Win95/98, NT4, Win2k]
xmag © (2002-01-04 21:41:00)Привет всем !
Есть вопросик. Создаю свой класс типа TTheaв например
type
TTestPort = class(TThread)
ClS : TClientSocket;
. . .
Так вот требуеться в потоке поймать событие от компонента TClientSocket OnConnect , OnDisconnect , OnError и т.д.
Очень нужен простой пример.
Заранее благодарен.
Hacker (2002-01-06 20:59:00) [1]Все просто - создаешь в своем новом классе TTestPort (а лучше создай потомок от TClientSocket - так потом удобней) процедуры
type
TTestPort = class(TThread)
Private
Procedure MyRead(тут как у обработчика);
Public
ClS : TClientSocket;
Где создаешь объект пишешь - TestPort.ClientSocket.OnRead:=MyRead;
А в MyRead процедуре пишешь нужный тебе обработчик.
Типа, когда произойдет событие - вызовится твоя процедура, там работаешь как будто ты пишешь обработчик.
Фишка в том - что процедура дожна принадлежать объекту.
xmag (2002-01-05 23:30:00) [2]Спасибо я понял что надо обнаботать событие :-) но как ? Можно примерчик или я что-то непонимаю ?-)
Hacker (2002-01-05 14:41:00) [3]У меня точно такая же задача: TThread & TClientSocket, но заставить создаваться динамически объект там и работать не получается(поток тоже создаю динамически в процедуре). Как что-то получится пришли код на ящик, что-бы я долго не мучался.
А по твоему вопросу: если тебе надо просто обработать событие у динамически создаваемого объекта, то это я обсуждал в основном форуме где-то 03.01.02. А если надо в другом потоке данные оттуда получить, то наверное просто надо создать переменную в первом потоке и ей все скинуть