お世話になってます。プログラム内で何らかの大量バッチ処理をしていたとします。下記の様に作業中断のメッセージを行ったのですがメッセージが表示されません。原因は何か解りますでしょうか?宜しくお願いします。
procedure TFkinmailtxt.Button1Click(Sender: TObject);
begin
// 大量バッチ作業
end;
procedure TFkinmailtxt.Button2Click(Sender: TObject);
begin
if MessageDlg('「作業を中断します...宜しいですか?' ,mtWarning,[mbyes,mbcancel],0) =mryes then
begin
// 作業中断処理。
end;
end;
追伸、環境はWindows10 DelphiXe8です。
大量のバッチ処理でループしているためWindows側に処理が回って来ず
画面が表示できないというやつですね。
Mr.XRAYさんが説明していますので御一読を
http://mrxray.on.coocan.jp/Delphi/plSamples/840_CancellLockDisable.htm
takeさん、有難う御座います。
Application.ProcessMessages;
Sleep(1);
この2行をループ内に挿入する事により解決しました。
ツイート | ![]() |