たまにShowMessageの挙動がおかしく(?)、
以下のような現象に悩まされています。
アドバイスをお願いいたします。
このようなアプリを作りました。
・メインフォームにボタンが1つ配置
・ボタンをクリックすると処理(ファイルコピー)が行われ、
ShowMessageで「処理完了」と表示される。
・本アプリはスタートアップに登録してあり、
Windows起動時に自動起動され、ユーザーの意志でボタンが押される。
たいてい問題なく動くのですが、
5%程度の確率で、ShowMessage「処理完了」が表示されず、
アプリが固まったようにクリックを受け付けてくれない状態になります。
そこで、[Alt]+[Tab]でアプリの切替を行って、
本アプリに再フォーカスさせると、ShowMessage「処理完了」は表示されます。
ソフトの裏側に表示されているような・・・。
以下は必ず表側に表示される例です。
Application.MessageBox(PChar('aaa'), PChar('bbb'), MB_OK or MB_SYSTEMMODAL);
Manbonさん
ありがとうございます。
ひとまず、教えていただいた方法を実装してみました。
これで様子を見てみます。
ところで、この「Application.MessageBox」にて、
「OK」ボタン以外に「CANCEL」ボタンも表示させたい場合、
また、どちらのボタンを押したのか、
判定したい場合は、どのようにしたらよいでしょうか。
if (Application.MessageBox(PChar('aaa'), PChar('bbb'), MB_OKCANCEL or MB_SYSTEMMODAL)) = mrOk then
できました。ありがとうございました。
ツイート | ![]() |