Показать сообщение отдельно
  #12  
Старый 09.01.2014, 16:23
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от alanatolich
Объясните пожалуйста эти три процедуры

Код:
PeekMessage
TranslateMessage
DispatchMessage

PeekMessage - я понял, что она проверяет есть ли в очереди сообщение, а вот две другие, не понял, за объяснение буду очень благодарен
Это стандартный цикл обработки сообщений. Впрочем да, так как у тебя в потоке нажатия клавиш не нужно обрабатывать, то TranslateMessage можно убрать. А DispatchMessage собственно и передаёт извлечённое из очереди сообщение на обработку в оконную процедуру. Ещё здесь неплохо бы сделать также небольшую задержку чтобы не сильно грузить процессор в холостом цикле.
Вот новый вариант цикла обработки сообщений:
Код:
    while not Terminated do
    begin
      if PeekMessage(Msg, 0, 0, 0, PM_REMOVE) then DispatchMessage(Msg) else Sleep(100);
    end;
Ответить с цитированием