待機させる方法

解決


ゾウリムシ  2005-03-23 09:12:53  No: 13906  IP: [192.*.*.*]

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


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

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  IP: [192.*.*.*]

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

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

編集    削除
ゾウリムシ  2005-03-23 19:29:53  No: 13908  IP: [192.*.*.*]

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

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

編集    削除