| TIP: Click on subject to list as thread! | ANSI |
| echo: | |
|---|---|
| to: | |
| from: | |
| date: | |
| subject: | pause |
Приветствую Вас, Alexey!
AS>>>> Вот вам нормальная пауза для ДОС версии Торнадо!
AF>>> Она не нормальная. Точность этой процедуры - 1/100 секунды.
AF>>> Hужно чтобы было хотя бы 1/1000.
AS>> Почему? Можно и без delay (1) - точность будет выше, но и
AS>> загрузка будет больше... хотя, как delay работает я не знаю...
AF> Потому что Sec100 (то, что у тебя ssec обозвано) - это 1/100 секунды,
AF> а не 1/1000.
Тогда так: temp_time := ((hour * 60 + min) * 60 + sec) * 100 + Sec100;
и так: while (Duration > (temp_time - temp_time_sawe)*10) do
будет 1/1000
AF> И переход суток в твоей процедуре не учтен.
Hа сколько вероятно, что пауза будет больше 5 сек., и какую это роль
сыграет в таком случае? Hу и что... 1 раз вместо 5 сек., не будет вообще
задержки... Хотя можно так:
Procedure Pause (Duration: LongInt);
{alexrain}
var
hour, min, sec, sec100 : Word;
temp_time, temp_time_sawe : Word;
time_day : Word;
Begin
GetTime (hour, min, sec, sec100);
temp_time_sawe := ((hour * 60 + min) * 60 + sec) * 100 + sec100;
temp_time := temp_time_sawe;
if Duration > temp_time - temp_time_sawe then
begin
while (Duration > (temp_time - temp_time_sawe)*10) do
begin
GetTime (hour, min, sec, sec100);
temp_time := ((hour * 60 + min) * 60 + sec) * 100 + sec100;
end;
end
else
begin
{если сутки на исходе}
time_day := 24 * 60 * 60 * 100;
Duration := Duration - (time_day - temp_time_sawe);
temp_time := temp_time + 1;
While temp_time > temp_time_sawe do
begin
GetTime (hour, min, sec, sec100);
temp_time := ((hour * 60 + min) * 60 + sec) * 100 + sec100;
end;
{дождались новых суток и...}
while Duration > temp_time do
begin
GetTime (hour, min, sec, sec100);
temp_time := ((hour * 60 + min) * 60 + sec) * 100 + sec100;
end;
end;
End;
Всего доброго! Алексей
--- (Freq/BBS) --) Welcome to BBS! --)
* Origin: /(Kitten in Rainshire) (440-7701) (23:00-09:00)/ (2:5030/1543)SEEN-BY: 633/267 270 5030/786 @PATH: 5030/1543 1374 1451 1900 5020/4441 545 715 140/1 106/2000 633/267 |
|
| SOURCE: echomail via fidonet.ozzmosis.com | |
Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.