繰り返し処理の中でProgressBarを使って進捗を表示したいと思っています。
下記のコードをコンパイルして実行すると、ProgressBarは、途中までは
スムーズに進むのですが、途中で止まってしまい暫くすると、急に
PosisionがMaxになり処理が完了します。
しかも、繰り返し処理の前にある'Label1.Caption:='Strat!';'を無くすと
スムーズに進みます。
試しにStatusBarで試してみましたが、こちらもスムーズに進みます。
さらにこの現象は、コンパイル済みのexeファイルでのみ発生します。
Delphiから実行したスムーズです。
PC環境に依存している様な感じがするのですが、どの環境でもProgressBarが
スムーズに動く様にするには、どの様にしたら良いのでしょうか?
ご教授願います。
ちなみに開発環境は、D6、winXPです。
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
const
M=300000;
begin
ProgressBar1.Position:=0;
ProgressBar1.Max:=M;
Label1.Caption:='Strat!';
StatusBar1.SimpleText:='Strat!';{※こっちだけなら大丈夫}
for i:=0 to M do begin
ProgressBar1.Position:=ProgressBar1.Position+1;
end;
end;
以下ではどうでしょう?
for i:=0 to M do begin
ProgressBar1.Position:=ProgressBar1.Position+1;
Application.ProcessMessages;
end;
deldelさん、ありがとう御座います。
出来ました。
そうです。こういうのを探してました。
自分なりに色々探したつもりだったのですが・・・
勉強になりました。
ツイート | ![]() |