ShowMessage が表示されない場合がある

解決


平和  2008-11-27 18:15:46  No: 32722

たまにShowMessageの挙動がおかしく(?)、
以下のような現象に悩まされています。
アドバイスをお願いいたします。

このようなアプリを作りました。
・メインフォームにボタンが1つ配置
・ボタンをクリックすると処理(ファイルコピー)が行われ、
  ShowMessageで「処理完了」と表示される。
・本アプリはスタートアップに登録してあり、
  Windows起動時に自動起動され、ユーザーの意志でボタンが押される。

たいてい問題なく動くのですが、
5%程度の確率で、ShowMessage「処理完了」が表示されず、
アプリが固まったようにクリックを受け付けてくれない状態になります。

そこで、[Alt]+[Tab]でアプリの切替を行って、
本アプリに再フォーカスさせると、ShowMessage「処理完了」は表示されます。


Manbon  2008-11-27 19:22:47  No: 32723

ソフトの裏側に表示されているような・・・。
以下は必ず表側に表示される例です。

Application.MessageBox(PChar('aaa'), PChar('bbb'), MB_OK or MB_SYSTEMMODAL);


平和  2008-11-27 20:22:21  No: 32724

Manbonさん
ありがとうございます。
ひとまず、教えていただいた方法を実装してみました。

これで様子を見てみます。


平和  2008-11-27 20:22:56  No: 32725

ところで、この「Application.MessageBox」にて、
「OK」ボタン以外に「CANCEL」ボタンも表示させたい場合、
また、どちらのボタンを押したのか、
判定したい場合は、どのようにしたらよいでしょうか。


平和  2008-11-27 21:19:57  No: 32726

if (Application.MessageBox(PChar('aaa'), PChar('bbb'), MB_OKCANCEL or MB_SYSTEMMODAL)) = mrOk then

できました。ありがとうございました。


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

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






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