主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

程序设计师の複数のコンポーネントに1つのコールバックを使用する

コンポーネント間でコールバックを共有すると,アプリで複数の操作方法を提供する場合に便利です。たとえば,ボタンをクリックしたときと,編集フィールドで输入キーを押したときのアプリの反応を同じにすることができます。

共有コールバックの例

この例では,コールバックを共有する2つのUIコンポーネントが含まれるアプリを作成する方法を説明します。このアプリでは,指定した数のレベルをもつ等高線図が表示されます。編集フィールドで値を変更する場合,输入キーを押すか,(更新图)ボタンをクリックしてプロットを更新できます。

  1. 程序设计师で,[座標軸]コンポーネントを[コンポーネントライブラリ]からキャンバスにドラッグします。以下の変更を行います。

    • タイトルをダブルクリックして,选择峰函数的轮廓に変更します。

    • X軸とY軸のラベルをダブルクリックし,删除キーを押して削除します。

  2. [編集フィールド(数値))コンポーネントを座標軸の下からキャンバスにドラッグします。以下の変更を行います。

    • 編集フィールドの隣のラベルをダブルリックし,级别:に変更します。

    • 編集フィールドをダブルクリックして既定値を20.に変更します。

  3. 編集フィールドの近くの[ボタン]コンポーネントをキャンバスにドラッグします。次に,そのラベルをダブルクリックし,更新图に変更します。

  4. ボタンをクリックした際に実行されるコールバック関数を追加します。(更新图)ボタンを右クリックし,[コールバック][ButtonPushedFcnコールバックの追加)を選択します。

  5. 程序设计师が[コードビュー]に切り替わります。次のコードをUpdatePlotButtonPushedコールバックの本体に貼り付けます。

    Z =峰(100);nlevels = app.LevelsEditField.Value;轮廓(app.UIAxes, Z, nlevels);
  6. 次に,コールバックを編集フィールドと共有します。[コンポーネントブラウザー]で,app.LevelsEditFieldコンポーネントを右クリックし,[コールバック](既存のコールバックを選択]を選択します。[コールバック関数の選択]ダイアログボックスが表示されたら,[名前]ドロップダウンメニューから(UpdatePlotButtonPushed)を選択します。

    このコールバックを共有すると,編集フィールドで値を変更し,输入キーを押した後にプロットを更新できます。または,値を変更し,(更新图)ボタンを押すことができます。

  7. 次に,座標軸の縦横比と範囲を設定します。[コンポーネントブラウザー]で,app.UIAxesコンポーネントを選択します。次に,[インスペクター]タブで次の変更を行います。

    • (PlotBoxAspectRatio)1, 1, 1に設定します。

    • (XLim)(YLim)0100年に設定します。

  8. [実行]をクリックしてアプリを保存し,実行します。

コールバックの変更または切断

コンポーネントに別のコールバックを割り当てるには,[コンポーネントブラウザー]でそのコンポーネントを選択します。次に,[コールバック]タブをクリックし,ドロップダウンメニューから別のコールバックを選択します。ドロップダウンには,既存のコールバックのみが表示されます。

コンポーネントと共有されているコールバックを切断するには,[コンポーネントブラウザー]でそのコンポーネントを選択します。次に,[コールバック]タブをクリックし,ドロップダウンメニューから(<コールバックなし>)を選択します。このオプションの選択により,コンポーネントからコールバックのみが切断されます。コードから関数定義が削除されることはなく,また他のコンポーネントからコールバックが切断されることもありません。コールバックを切断した後,コンポーネントの新しいコールバックを作成するか,コンポーネントをコールバック関数なしの状態のままにできます。

コールバック関数の定義をコードから削除するには,[コードブラウザー][コールバック]タブに移動し,削除するコールバックを右クリックします。次に,コンテキストメニューから[削除]を選択します。

関連するトピック