msgbox 関数でモーダルモード(modal) に指定しても、"OK" ボタンをクリックする前にプログラム中の次の処理が進んでしまうのはなぜですか?
12 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
MathWorks Support Team
il 22 Giu 2021
Risposto: MathWorks Support Team
il 22 Giu 2021
MATLAB プログラム中に以下のような処理を記述しています。
plot(1:1)
msgbox('コンター図の表示', 'modal')
contourf(peaks)
msgbox 関数によりメッセージボックスは表示されますが、OK ボタンを選択する前に、次の処理(ここでは contourf 関数)が実行されてしまいます。
Risposta accettata
MathWorks Support Team
il 22 Giu 2021
モーダルは「実行をブロックする」と同じものではありません。モーダル ダイアログ ボックスを使用すると、ユーザーが応答する前に他のウィンドウと対話できなくなりますが、MATLAB 関数の残りのコードの実行は妨げられません。
MSGBOXは情報を含むウィンドウを設置することを目的としており、「OK」ボタンは、人がその情報を見たということを意味します。ただし、ユーザー入力まで、ダイアログ ボックスは MATLAB 関数の実行を中断しません。
OK ボタンを押下するまで、後段の処理を待機させるには、QUESTDLG のような別の種類のダイアログ ボックスを使用するか、以下のように WAITFOR コマンドを MSGBOX と組み合わせて使用します。
例:
waitfor(msgbox('Wait for me.'));
disp('Done waiting.');
0 Commenti
Più risposte (0)
Vedere anche
Prodotti
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!