ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

waitfor

実行をブロックして条件を待機

構文

waitfor(mo)
waitfor(mo,propname)
waitfor(mo,propname,propvalue)

説明

waitfor(mo) は、MATLAB® オブジェクトが閉じる (削除される) までステートメントの実行をブロックします。オブジェクトが存在しなくなると、waitfor は戻り、実行を再開できるようになります。オブジェクトが存在しない場合、waitfor は直ちに戻ります。

waitfor(mo,propname) はオブジェクトのプロパティ名を指定し、そのプロパティの値が変わるかオブジェクトが閉じるまで実行をブロックします。たとえば、waitfor(mytable,'Data') は、mytable'Data' の値が変わるまで実行を一時停止します。指定したプロパティ名が無効の場合、実行はブロックされたままとなります。

waitfor(mo,propname,propvalue) は、実行が再開可能となるためにプロパティが取らなければならない値を指定します。指定されたプロパティが既に propvalue と等しい場合、waitfor は直ちに戻り、実行が再開されます。

すべて折りたたむ

警告ダイアログが閉じるまで実行をブロックします。

警告ダイアログを作成し、警告ダイアログをオブジェクトに指定して関数 waitfor を呼び出します。続いて、コマンド ラインに表示するメッセージを作成します。これは表示されないことに注意してください。

mydlg = warndlg('This is a warning.', 'A Warning Dialog');
waitfor(mydlg);
disp('This prints after you close the warning dialog.');

警告ダイアログを閉じます。ここで、waitfor が戻り、実行が再開され、メッセージがコマンド ラインに表示されます。

ユーザーがチェック ボックスをオンにするのを待ってから、テーブルにデータを追加します。チェック ボックスの Value プロパティを監視することで、それがオンになるのを検出します。

テーブルとチェック ボックスを作成します。チェック ボックスの Value プロパティを 0 に設定します。関数 waitfor を呼び出し、実行を継続するにはチェック ボックスの Value プロパティの変化が必須であることを指定します。続いて、テーブルに追加されるデータを指定します。このデータは表示されないことに注意してください。

t = uitable;
c = uicontrol('Style','checkbox','String','Add data');
c.Value = 0;
c.Position = [320 100 80 20];
waitfor(c,'Value');
t.Data = magic(5);

チェック ボックスをオンにします。これによって、チェック ボックスの Value プロパティが 1 に変わります。実行が再開され、指定のデータがテーブルに表示されます。

ユーザーがテキスト フィールドの編集をやめるのを待ってから、テキストの背景色を変更します。テキスト フィールドの Editing プロパティが 'off' になるのを待つことで、ユーザーが編集をやめ、Figure 内の他の場所をクリックするのを検出します。

Text オブジェクトを、表示する何らかの初期テキストを使って作成します。続いて、その Editing プロパティを 'on' に設定し、背景色を白に設定します。

txt = text(.5,.5,'Edit text and click');
txt.Editing = 'on';
txt.BackgroundColor = [1 1 1];

次に、waitfor を呼び出して、実行を再開するには Editing プロパティの値が 'off' に変わらなければならないことを指定します。テキストの背景色を黄色に設定し、その色がまだ変わっていないことを確認します。

waitfor(txt,'Editing','off');
txt.BackgroundColor = [1 1 0];

テキスト フィールドをクリックし、その内容を編集します。続いて、Figure 内の別の場所をクリックします。ここで、waitfor が戻り、実行が再開され、テキストの背景色が黄色に変わります。

入力引数

すべて折りたたむ

任意の MATLAB オブジェクト。AxesTextPanelButtonGroupTableUIControl オブジェクトなどの Graphics オブジェクトが含まれます。

プロパティ名。文字ベクトルまたは string スカラーとして指定します。この引数を使用して mo のプロパティを指定します。実行を再開するにはその値が変わらなければなりません。

propname と関連付けられたプロパティ値。任意の MATLAB データとして指定します。有効な propvalue データ型については、指定したオブジェクトのタイプに関する MATLAB のリファレンス ページを参照してください。この引数を使用して、実行が継続されるためにプロパティが取らなければならない特定値を指定します。

ヒント

  • waitfor の実行中に Figure が閉じられると、存在しなくなったオブジェクトにコードがアクセスしようとするため、エラーが発生します。このエラーは、waitfortry/catch ブロック内に囲むことで対処することができます。

アルゴリズム

通常、プログラムや Simulink® モデルの実行継続を妨げるために waitfor が使用された場合でも、コールバックは実行できます。たとえば、ユーザー アクション (マウス ボタンを押すなど) に応答するコールバックは、waitfor が呼び出された場合でも実行が可能です。

waitfor は、入れ子関数の呼び出しをブロックするために使用することもできます。たとえば、関数 waitfor の実行中に実行されるコールバックは、waitfor を呼び出すこともできます。UI コンポーネントのコールバック関数が関数 waitfor を実行中の場合、そのコールバックは、そのコンポーネントの Interruptible プロパティ値がどう設定されているかに関係なく中断されることがあります。

R2006a より前に導入