待機させる方法

解決


ゾウリムシ  2005-03-23 09:12:53  No: 13906

はじめまして、いつも皆様お世話になっております

プログラムを待機させる方法として

procedure TForm1.Delay(ms:integer);
var
   StartCount:longint;
begin
  StartCount:=GetTickCount;
  repeat
    Application.ProcessMessages;
  until ((GetTickCount-StartCount) >= Longint(ms));
end;

というのを見つけたのですが、どうもPCに負担がかかっているような気がします
動作を軽くするにはどうしたらいいのでしょうか

あと、この
Application.ProcessMessages;
とはどういう意味なのでしょうか?
プログラムは待機するけれども、動作は可能といった感じでしょうか


たかみちえ  URL  2005-03-23 10:44:28  No: 13907

> どうもPCに負担がかかっているような気がします
Sleep APIを使ってみてください。

> Application.ProcessMessages;
> とはどういう意味なのでしょうか?
  ヘルプを読んでください。ちゃんと解説が載っています。
それの意味が分からない場合は、メッセージループについて、Googleなどで検索してみましょう


ゾウリムシ  2005-03-23 19:29:53  No: 13908

たかみちえさん有難うございます
Sleep関数を使うことで無事解決できました

procedure delay(T: longint);
var
  finish : longint;
begin
  finish := GetTickCount + T;
  repeat
    Sleep(100);
    Application.ProcessMessages;
  until GetTickCount > Finish
end;


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加