複合コンポーネント内のボタン処理について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 複合コンポーネント内のボタン処理について

2 件の投稿を閲覧中 - 1 ~ 2 件(全 2 件)
  • 著者
    投稿
  • #5288
    1261s-tateyama
    一般参加者

    複合コンポーネントに【確定】ボタン、【キャンセル】ボタンを配置し
    どちらかのボタンが押された時、上の階層でボタンのテキスト(確定・キャンセル)に応じた
    処理を行ないたいのですが、複合コンポーネントからのボタンのテキストを上の階層に転送する
    方法・上の階層でのテキストの受け取り方が解りません
    ご教授お願いいたします。

    #5289
    MZPlatformユーザー会
    サイト管理者

    下記回答になります。サンプルアプリのZIPファイルを添付しますので、展開してビルダーで開きながら説明をご覧ください。

    複合コンポーネントの中のイベント処理から上の階層に処理を渡すためには、メソッド起動で複合コンポーネントそのものに接続して、「イベントを伝播させる」か「イベント番号を指定してイベントを伝播させる」を起動します。このとき、引数のイベントは取得方法をイベントにします。

    複合コンポーネントの中で上記のようなメソッド起動を作成すると、上の階層で複合コンポーネントのイベント処理追加のメニューにそのイベントが表示されるようになります。あとはそのイベント処理を追加して、必要なメソッド起動を作成します。

    複合コンポーネント内部でボタンを複数作成して処理を分けたい場合には、ボタンのアクションイベント処理の中で複合コンポーネントの「イベント番号を指定してイベントを伝播させる」を起動し、ボタンごとにイベント番号を割り当てます。上位階層では複合コンポーネントにアクションイベント処理を追加し、メソッド起動に対してイベント番号を設定することでボタンごとの処理を実現できます。この場合は、アクションイベントとイベント番号の組み合わせで処理を渡すので、文字列等を渡すことはできません。(サンプル中のテスト用1が対応)

    もし、ボタンの文字列を上位階層に渡したい場合は、ボタンのアクションイベントから直接上位に渡さずに、イベント生成コンポーネント(処理部品>イベント)を使います。イベント生成はすべてのイベントを生成できるので、どのイベントを使うか迷うかもしれませんが、ここではボタンの文字列をデータ生成イベントで上位に渡すことにします。(サンプル中のテスト用2が対応)

    ボタンのアクションイベント処理でイベント生成のメソッド「データ生成イベントの発生」を起動し、引数にボタンの文字列を指定します。上位でイベント番号を用いた分岐が必要であれば、番号も指定します。そして、イベント生成のイベント処理で対応するイベント(ここではデータ生成)を追加して、その中で複合コンポーネントの「イベントを伝播させる」を起動します。メソッド起動で発生させたイベントに対応したイベント処理に接続しないと正常に動作しませんのでご注意ください。あとは上位階層で複合コンポーネントにデータ生成イベント処理を追加して、ご希望のメソッド起動を記述します。イベントに含めたボタン文字列は、メソッド起動の引数でイベント内包のイベント対象データとして利用することが可能です。

    説明が長くて複雑ですので、何かご不明な点があればお問い合わせください。

    添付ファイル:
2 件の投稿を閲覧中 - 1 ~ 2 件(全 2 件)
  • このトピックに返信するには、ログインしてください。