![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TclientSocket в приложении, не имеющей ни одной формы [D6, Win95/98, WinME, NT4, WinXP]
LEONardo © (2004-07-02 12:01:00)Как сделать так, чтобы в приложении, не имеющей ни одной формы(Tform) у компонента, создаваемого динамически (TclientSocket) вызывались соответсвующие методы, например, OnSocketErrorEvent,Onconnection и т.п.
Заранее благодарен!
Reindeer Moss Eater (2004-07-02 12:34:00) [21]А зачем вообще использовать событийную модель в консольномприложении?
Блокирующий режим и процедурный подход.
Зачем извраты?
Iraizor (2004-07-02 12:32:00) [22]Я имел ввиду что-то вроде этого
while true do
begin
if onconnect <>nil then Proc1;
if OnRead<>nil then Proc2;
etc...
end;
LEONardo (2004-07-02 12:19:00) [23]Во первых, в цикл ставил
while Connect in [true,false] do
if connect then
ProcessMessages else
Client.open;
Ни чего только гимморой с весом файла (uses FORMS)
Окна вроде нет
Reindeer Moss Eater (2004-07-02 12:16:00) [24]А ему окно не нужно, этому tclientsocket?
Iraizor (2004-07-02 12:15:00) [25]самый тупой способ - бесконечный цикл с поочередной проверкой всех событий.Может даже сработает =)
LEONardo (2004-07-02 12:14:00) [26]Повторюсь, это приложение БЕЗ ФОРМ
Я не обрабатываю сообщения Tapplication.ProcessMessages
Да и он не чего не дает, пробовал
LEONardo (2004-07-02 12:12:00) [27]Да на OnError:=socError;
где SocError:TSocketErrorEvent;
procedure SocError(..);
begin
ErrorCode:=0;
end;
Все равно ниче не вызывается
Reindeer Moss Eater (2004-07-02 12:10:00) [28]Потому что смотри пункт 2
LEONardo (2004-07-02 12:09:00) [29]Ок.
Но в конмольном приложении вообщее накакое собітие не візівается!
Reindeer Moss Eater (2004-07-02 12:06:00) [30]Чтобы был вызван обработчик (сгененрировалось событие) свойство OnСобытие не должно быть равно nil.
Reindeer Moss Eater (2004-07-02 12:05:00) [31]не методы а события.
А вызываются они только если свойства OnSomething <> nil;