3. システムディレイ関数(Delphi-ML35020より)
時間稼ぎをさせる
 


Delphiでは、Basicのようにfor-nextループで時間稼ぎができず、
他のプロセスとシェアをしてしまう。それを解決する関数。

var
  fWaitBreak : boolean = False;        // 強制終了用フラグ

// 待ち関数  指定カウントが経過すれば True, 中断されたならば False
function WaitTime(const t: integer): Boolean;
var
    Timeout: TDateTime;
begin
    fWaitBreak := False;              // フラグの初期化
    Timeout := Now + t/24/3600/1000;  // 終了時刻

    while (Now < Timeout)and not fWaitBreak do begin
        Application.ProcessMessages;
        Sleep(10);                //精度が 10ms 以下で良い場合
    end;

    Result := not fWaitBreak;
end;





戻る 竹村 匡正  takemura@sahs.med.osaka-u.ac.jp