![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите разобраться с задержкой [D5]
_alex_ © (2004-11-22 14:38:00)Добрый день!
Мне необходимо вставлять по ходу функции временные задержки, их я реализую с помощью процедуры:
procedure Delay(Seconds, MilliSec: Word);
var
TimeOut: TDateTime;
begin
tmpCountDelay:= 0;
TimeOut:= Now + EncodeTime(0, Seconds div 60,
Seconds mod 60, MilliSec);
while Now < TimeOut do
Application.ProcessMessages;
В половине случаев вместо 1,5 секунд эта функция выполняется все 3–5 секунд.
Из-за чего это происходит?
Now или ProcessMessages?
Yanis (2004-11-22 18:05:00) [1]
procedure Wait(T: Integer);
var
h:THandle;
begin
H := CreateEvent(nil,true,false,'');
WaitForSingleObject(h,T);
CloseHandle(h);
end;
Использование:
Wait(1000); // одна секунда
Digitman (2004-11-22 17:04:00) [2]Удалено модератором
ggs (2004-11-22 16:57:00) [3]Удалено модератором
Piter (2004-11-22 15:43:00) [4]Задержки в программе не нужны вообще. Это говорит о неправильном алгоритме работы
КаПиБаРа (2004-11-22 15:03:00) [5]Удалено модератором
Skyle (2004-11-22 14:43:00) [6]> _alex_ (22.11.04 14:38)
> Из-за чего это происходит?
Гвозди с микроскопом не сочетаются.
Используй > [1] ламер © (22.11.04 14:41)либо таймер.
ламер (2004-11-22 14:41:00) [7]используй либо Sleep(), либо (если уж так нужен цикл) GetTickCount().