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

офф: вспомнилсо боянчег
Программистский шедевр на индусском форуме на тему "как узнать завтрашнюю дату" остался непревзойденным:
void get_tomorrow_date( struct timeval *date )
(
sleep( 86400 ); // 60 * 60 * 24
gettimeofday( date, 0 );
)


-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
В GUI части проекта вообще нельзя использовать Sleep(). На сообщения нужно отвечать так быстро, как только возможно, поэтому надо истользовать WM_TIMER. В серверной части тоже неплохо бы задуматься, нельзя ли вместо Sleep() делать что - либо более полезное.
2B OR NOT(2B) = FF
а мне как раз попдошло sleep(1)
это для моего случая не критично
это для моего случая не критично
