Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:15.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter