Показать сообщение отдельно
  #1  
Старый 14.07.2007, 21:30
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию Замена Application.ProcessMessages

Я написал эту маленькую процедурку, т.к. однажды столкнулся с багом то ли компилятора, то ли системы, когда при использовании Application.ProcessMessages возникала непредвиденная ошибка. Советую попробовать воспользоваться этим куском кода, т.к. он не только более "Апишный" (для его работы нужен только модуль windows), но и более быстрый (сравните его с кодом Application.ProcessMessages), да и к тому же позволяет кустомизировать действия при получении и обработке сообщений. В общем, всем на рассмотрение и в случае чего, на исправление
Wnd можно не указывать, если процедура вызывается той формой, для которой нужно очистить и обработать очередь сообщений.
Код:
procedure Delay(Wnd: HWND = 0);
var
  Msg: TMsg;
begin
  while True do
  begin

    if not PeekMessage(Msg,Wnd,0,0,PM_REMOVE) then Break;
    TranslateMessage(Msg);
    DispatchMessage(Msg);

  end;
end;
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием