作業実行中に処理を中断するには?

解決


ゆうた  2016-07-21 00:04:12  No: 48242

お世話になってます。プログラム内で何らかの大量バッチ処理をしていたとします。下記の様に作業中断のメッセージを行ったのですがメッセージが表示されません。原因は何か解りますでしょうか?宜しくお願いします。

procedure TFkinmailtxt.Button1Click(Sender: TObject);
begin
  // 大量バッチ作業
end;

procedure TFkinmailtxt.Button2Click(Sender: TObject);
begin
  if MessageDlg('「作業を中断します...宜しいですか?' ,mtWarning,[mbyes,mbcancel],0) =mryes then
  begin
    // 作業中断処理。
  end;
end;


ゆうた  2016-07-21 00:08:10  No: 48243

追伸、環境はWindows10  DelphiXe8です。


take  URL  2016-07-21 01:15:00  No: 48244

大量のバッチ処理でループしているためWindows側に処理が回って来ず
画面が表示できないというやつですね。

Mr.XRAYさんが説明していますので御一読を
http://mrxray.on.coocan.jp/Delphi/plSamples/840_CancellLockDisable.htm


ゆうた  2016-07-21 20:03:45  No: 48245

takeさん、有難う御座います。

Application.ProcessMessages;
Sleep(1);

この2行をループ内に挿入する事により解決しました。


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

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






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