Страница 1 из 2
delay в делфи
Добавлено: 10 янв 2007, 10:04
matroskin
есть ли какой нить аналог delay в делфи?
Re: delay в делфи
Добавлено: 10 янв 2007, 10:13
Хыиуду
matroskin писал(а):есть ли какой нить аналог delay в делфи?
Есть. sleep
А еще есть функция gettickcount, которая возвращает кол-во миллисекунд начиная с запуска программы. Поэтому можно делать что-то вроде:
time1:=gettickcount;
repeat
until gettickcount>=time1+1000;
А еще было что-то связанное с потоками - WaitForSingleObject или WaitForSingleEvent, не помню точно
Re: delay в делфи
Добавлено: 10 янв 2007, 11:10
Absurd
matroskin писал(а):есть ли какой нить аналог delay в делфи?
Компьютер должен работать, а не спать.
Re: delay в делфи
Добавлено: 10 янв 2007, 11:44
Duncon
Самое шикарное решение подождать выполнение события, а так как оно пустое, то ожидание будет длиться именно столько сколько указанно..
Код: Выделить всё
procedure TForm1.pause;
var
h: THandle;
begin
h := CreateEvent(nil, true, false, ' ');
WaitForSingleObject(h, 10000);
CloseHandle(h);
end;
Re: delay в делфи
Добавлено: 10 янв 2007, 11:55
Хыиуду
вот именно это я и имел в виду. С виду непонятно, зато изящно!
Re: delay в делфи
Добавлено: 10 янв 2007, 12:30
matroskin
пасибо всем
Re: delay в делфи
Добавлено: 10 янв 2007, 21:26
Avokain
Так намного удобней
procedure Delay (Seconds: Real);
var
Later: TDateTime;
begin
Later:= Now + (Seconds / (24.0 * 60.0 * 60.0));
While Now < Later do Application.ProcessMessages;
end;
Re: delay в делфи
Добавлено: 12 янв 2007, 12:05
Игорь Акопян
божешь мой, а чем Sleep(ms) не угодил-то???
офф: вспомнилсо боянчег
Программистский шедевр на индусском форуме на тему "как узнать завтрашнюю дату" остался непревзойденным:
void get_tomorrow_date( struct timeval *date )
(
sleep( 86400 ); // 60 * 60 * 24
gettimeofday( date, 0 );
)

Re: delay в делфи
Добавлено: 12 янв 2007, 13:07
Absurd
В GUI части проекта вообще нельзя использовать Sleep(). На сообщения нужно отвечать так быстро, как только возможно, поэтому надо истользовать WM_TIMER. В серверной части тоже неплохо бы задуматься, нельзя ли вместо Sleep() делать что - либо более полезное.
Re: delay в делфи
Добавлено: 12 янв 2007, 13:53
matroskin
а мне как раз попдошло sleep(1)
это для моего случая не критично
