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


Автор: AugMaster 21.10.2006, 21:33
Добрый вечер.
Я работаю с NonBlocking ServerSockets и у меня появилась проблема
при коннекте на один из серверсокетов вызывается процедура, которая выделяет слот памяти и т.д.
Однако если на другой серверсокет идет коннект то процедура обработки коннекта на предыдущий сокет приостанавливается, в результате чего получается неправильное выделение памяти.
Существуют ли команды, позволяющие приложению(обычная Application)  временно не отвечать на события (connect, disconnect,error) ?
Тогда я при коннекте сразу бы вызывал блокировку сообщений, обрабатывал данный коннект и затем разблокировал сообщения.
Заранее спасибо.

Автор: Nicholas_S 22.10.2006, 00:19
AugMaster, попробуй использовать Application.OnIdle:

Код

procedure TForm.FormCreate(Sender: TObject);
begin
  Application.OnIdle:= MyIdleHandler;
end;

procedure TForm.MyIdleHandler(Sender: TObject; var Done: Boolean);
begin
  Done := BlockedStatus;
end;

где MyIdleHandler - объявленный метод формы. Пока Done не будет установлена в true, объекты формы не получат управления.

Автор: AugMaster 23.10.2006, 00:10
честно говоря немного не понял
Сейчас посмотрел - Application.OnIdle выполняет код когда приложение простаивает ( не обрабатывает код, ожидает события)
Оно не блокирует сообщения.

Автор: Matematik 23.10.2006, 00:44
Не обрабатываей сообщения формы пока занимаешься в OnConnect.
Написал бы свой код, а так понять ничего нельзя

Автор: Snowy 23.10.2006, 02:15
AugMaster, что-то ты путаешь.
Так не бывает.

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