Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
ВнизКак сделать задержку выполнения программы на N милисекунд? Найти похожие ветки
← →
HES (2004-01-27 11:18) [0]Есть функция sleep(N), но она работает криво, загружает процессор на 100%. А задача такова: я делаю игру видео-покер. Карты должны выводиться поочередно через 0.2 сек. Я пишу:
for i:=0 to 4 do
begin
Card[i].show;
sleep(200)
end;
И что я получаю? - Сначал "зависон" ровно на 5*200ms=1сек, а потом все карты появляются одновременно...
Может создать Timer с интервалом в 200ms, задать ему буфер адресов функций которые надо выполнить, и выпонять их по Timer1Timer? Но это слишком некрасиво. Может кто знает как сделать функцию например
function Pause(N_ms: integer):boolean
которая возвращает True по прошествии N ms, и во время своего выполнения не загружает процессор?
← →
Darthman (2004-01-27 11:31) [1]А card - это, поди, компонент? Тогда card.repaint до ухода в спячку делай.
← →
panov (2004-01-27 12:03) [2]for i:=0 to 4 do
begin
Card[i].show;
Application.ProcessMessages;
sleep(200)
end;
← →
Oyster (2004-01-27 12:41) [3]Или так
for i:=0 to 4 do
begin
Card[i].show;
Form.RePaint;
sleep(200)
end;
← →
Oyster (2004-01-27 12:49) [4]И, кстати, Sleep не загружает процессор на 100%, а ноаборот, освобождает его от приложения на время работы процедуры.
← →
Digitman (2004-01-27 14:19) [5]var
CardId: Integer;
procedure TMyForm.MyTimerTimer(Sender: TObject);
begin
Card[CardId].Show;
inc(CardId);
with TTimer(Sender) do
begin
Enabled := CardId < 4;
if not Enabled then
begin
CardId := 0;
MyButton.Enabled := True;
end;
end;
end;
....
procedure TMyForm.MyButtonClick(Sender: TObject);
begin
...
MyTimer.Interval := 200;
MyTimer.Enabled := True;
MyButton.Enabled := False;
...
end;
← →
Goorus (2004-01-28 03:28) [6]Я так делал ограничение fps:
var StartTime:Cardinal;
...
for i:=0 to 4 do
begin
Card[i].show;
StartTime:=GetTickCount;
while (GetTickCount-StartTime)<200 do
Application.ProcessMessages;
end;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.029 c