TIP: Click on subject to list as thread! ANSI
echo: tornado.support
to: Alexey Fayans
from: Alexey Subbotin
date: 2005-09-08 04:17:58
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™.