Вниз
Скачать: CL | DM;

задержка   Найти похожие ветки 

← →
Noway ©   (2004-03-30 18:39) [0]

Как в Дельфи по ставить задержку?
В Паскале можно было написать Delay(число).


← →
новичок_из_сыктывкара ©   (2004-03-30 18:41) [1]

sleep (число);


← →
имя   (2004-03-30 18:41) [2]

Sleep(мсек)


← →
Dmyk   (2004-03-30 20:18) [3]

Только учитывай, что sleep тормозит ВСЮ программу, в том числе сообщения о перерисовке окна, что очень неприятно. Чтобы такого не было... Чисто теоретически можно пропробывать таймер + EnableWindow, но я не гарантирую, что оно будет работать. Правда, sleep можно использовать в тех же консольных программах...


← →
$tranger ©   (2004-03-30 20:23) [4]

Посмотри в ЧаВо и в кладовке модуль CRT


← →
YurikGl ©   (2004-03-30 20:34) [5]

Проще пользовать Timer


← →
TUser ©   (2004-03-30 21:03) [6]


> sleep тормозит ВСЮ программу

Это не совсем так - sleep тормозит весь поток, в котором он вызван.


← →
Dimaxx ©   (2004-03-30 22:27) [7]

Чтобы не тормозить поток используйте SleepEx со вторым параметром True.


← →
Piter ©   (2004-03-30 23:19) [8]

sleep по-моему говорит системе сколько времени поток не нуждается в выполнении...  и не факт что ему передатут управление по истечении этого времени...


← →
Anatoly Podgoretsky ©   (2004-03-31 12:22) [9]

sleep является наиболее близким аналогом, за исключением гарантий, но и отсутствие sleep точно также не дает этих гарантий, система многозадачная, в отличии от ДОС


← →
V-Isa ©   (2004-03-31 15:39) [10]

Какой sleep?
Предлагаю такой вариант:

Function Pause(ms:Integer);
...
Begin
...
Получаем текущее время в переменную A;
Repeat
 Получаем текущее время в переменную B;
 Application.ProcessMessages;
Until B-A>=ms;
...
End;


← →
infom ©   (2004-03-31 15:48) [11]

Function Pause(ms:Integer);
var a:longint;
Begin
A:= GetTickCount;
Repeat
Application.ProcessMessages;
Until GetTickCount-A>=ms;
End;


← →
VMcL ©   (2004-03-31 15:59) [12]

>>V-Isa ©  (31.03.04 15:39) [10]
>>infom ©  (31.03.04 15:48) [11]

Ну, допустим, передал я в ваши процедуры задержку в 50 миллисекунд. Где гарантии того, что Application.ProcessMessages не будет выполняться, скажем, 2 минуты?

См. [9].


← →
Amoeba ©   (2004-03-31 16:52) [13]

Это из RxLib:

procedure Delay(MSecs: Longint);
var
 FirstTickCount, Now: Longint;
begin
 FirstTickCount := GetTickCount;
 repeat
   Application.ProcessMessages;
   { allowing access to other controls, etc. }
   Now := GetTickCount;
 until (Now - FirstTickCount >= MSecs) or (Now < FirstTickCount);
end;


← →
Amoeba ©   (2004-03-31 16:56) [14]


> Где гарантии того, что Application.ProcessMessages не будет
> выполняться, скажем, 2 минуты?

Не надо фантазировать.


← →
Anatoly Podgoretsky ©   (2004-03-31 17:11) [15]

Amoeba ©   (31.03.04 16:56) [14]
А поставь плохой CD увидишь и синий экран.


← →
Ega23 ©   (2004-03-31 17:28) [16]

2 Anatoly Podgoretsky

Кстати, вы не могли бы объяснить причину такой плохой реализации работы с CD? Уже давно задавался вопросом, но как-то не сподобился выяснить...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.02 c
1-1080984736
Beginner1
2004-04-03 13:32
2004.04.18
FileListBox


6-1076399932
Роман
2004-02-10 10:58
2004.04.18
Прикреплённые файлы к письму


7-1075126913
XP
2004-01-26 17:21
2004.04.18
Работа с LPT...


14-1080387059
Thor
2004-03-27 14:30
2004.04.18
.NET CF


8-1072436328
AlexeyITN
2003-12-26 13:58
2004.04.18
Голоса




   Наверх