Показать сообщение отдельно
Старый 28.02.2008, 22:59   #16
Гость
 
Сообщений: n/a
По умолчанию

нехорошо ставить слип на основной поток :<
там вместо do ; должно было быть do Application.ProcessMessages;
альтернатива делаю, только будут обрабатываться ProcessMessages...
Код:
procedure Delay(ATimeout: Integer);
var
  t: Cardinal;
begin
  while ATimeout > 0 do
  begin
    t := GetTickCount;
    if MsgWaitForMultipleObjects(0, nil^, False, ATimeOut, QS_ALLINPUT) = WAIT_TIMEOUT then
      Exit;
    Application.ProcessMessages;
    dec(ATimeout, GetTickCount - t);
  end;
end;

Последний раз редактировалось NLObP, 09.05.2008 в 15:42.
  Ответить с цитированием