|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Замена 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 |