複合コンポーネントとは

複合コンポーネントとは、いくつかのコンポーネントを違う階層にひと纏めにした新たなコンポーネントです。
以下のような場合に便利です。
  1. 繰り返し使われる操作をまと めておく
  2. ビルダー上の記述が長くなってしまった場合に整理する
  3. 機能単位にまとめておき 開発作業の効率を上げたい
  1. 複合コンポーネントの種類
  2. 複合コンポーネントには2つの種類があります。
    1. 主に機能をまとめておくための緑色の[複合コンポーネント]
    2. 画面構成部品として使える青色の[GUI複合コンポーネント]
      [フレーム]や[ダイアログ]を複合コンポネント内に追加しなくても画面編集ができ、複合コンポーネントそのものが上位階層で画面構成部品と なります。
  3. 複合コンポーネントの追加方法
  4. 以下の3つの方法があります。
    1. 新規追加
      ビルダー編集画面上で右クリック>[複合コンポーネント作成]>[コンポーネント]または[GUIコンポ―ネント]を選択します。
    2. 保存したファイルをロード
      保存した複合コンポーネントを編集画面上に追加する場合は、ビルダー編集画面上で右クリック>[複合コンポーネント追加]>[ロード...] からファ イル名を選択します。
    3. 既定保存先フォルダに保存したファイルをロード
      ビルダー編集画面上で右クリック>[複合コンポーネント追加]>を選ぶと、\MZ Platformインストールフォルダ \AP_DATA_COMBフォルダに保存してあるファイル名がサブメニューとし て表示されます。
      ファイル名を選択すると編集画面上に追加されます。

複合コンポーネント内での設定

  1. 複合コンポーネント階層の移動
    1. 接続元の複合コンポーネントをダブルクリックすると、複合コンポーネント内の階層に移動できます。
      複合コンポーネ ントの編集領域に通常通り コンポーネントを追加します。
    2. 複合コンポーネント内から階層を移動するにはビルダー右上のフォルダアイコンをクリックします。
      「上 へ」「最上位へ」「階層選択」などができます。
  2. コンポーネント名称設定
  3. 複合コンポーネント編集画面上部にある「コンポーネント名称」欄は最初『<No Name>』となっています。
    新しい名称を入力して変更します。
  4. 複合コンポーネント内での画面編集
  5. 複合コンポーネントでは上位の階層と同様にコンポーネントを追加し、「画面編集画面」に入り、画面編集を行います。
    1. 緑色[複合コンポーネント]
      [フレーム]などのウィンドウコンポーネントを追加して、その上に画面構成部品を配置します。
    2. 青色[GUI複合コンポーネント]
      フレーム類を追加しなくても、画面編集ができます。
      上位階層では[GUI複合コンポーネント]自体が画面構成の部品となります。
複合コンポーネント階層移動アイコン

上位階層でGUI複合コンポーネント画面配置

メソッドの公開

  1. メソッドの公開
  2. 複合コンポーネント内のコンポーネントのメソッドは、そのままでは他階層から利用できません。
    メソッドを公開して呼び出せる ようにします。
    1. 例)上位階層の[ボタン]を押したら、複合コンポーネント内の[フレー ム]を表示する。
      1. 複合コンポ―ネント内のコンポーネントを右クリック>[公開メソッド設定]を選択します。
        公開メソッド設定窓が現れます。
      2. 公開メソッド設定窓のコンポーネント名の上で右クリック>[公開メソッド設定...]を選択するか、コンポーネント名をダブルクリッ クします。
        メソッド選択窓が現れます。
      3. メソッド選択窓で公開したいメソッド(例:「フレームを表示する()」)を選択し、[追加(公開化)]ボタンを押すと、メソッド名が 下側 の 「公開メソッド一 覧」欄に移動します。
        [設定]ボタンを 押すとメソッドが公開されます。
      4. 公開メソッド選択窓の右側の欄に、公開したメソッド名が表示されているのを確認し、閉じます。
      5. 上位階層に戻り、[ボタン]のアクションイベントの接続先コンポーネントを「複合コンポーネント]とします。
        起動メソッド情報設定窓 で公開したメソッドが選択できます。

      [編集画面図]

  3. 公開メソッド名の変更
  4. 同種のコンポーネントのメソッド名は全て同じになるので、別階層からはメソッド名だけでは区別がつかない場合があります。
    必要に応じて公開メソッド名を変更して判りやすくすることができます。

    1. 公開メソッド名の上で右クリック>公開メソッド名変更...を選択します。
    2. 出てくる入力窓にメソッド名を入力し、[OK]ボタンを押します。
公開メソッド設定
公開メソッド設定窓例
メソッド選択窓
公開メソッド設定・メソッド名変更

複合コンポーネントの保存

  1. 複合コンポーネントの保存
    1. 複合コンポーネント内で保存ボタンを押すと、『すべて』か『この階層のみ』を選ぶことができます。
      1. 『すべて』を選ぶと、アプリケーションファイル全体を保存します。
      2. 『この階層のみ』を選ぶと、複合コンポ ―ネ ントのみ保存することができます。
        複合コンポーネント保存ファイルの拡張子は「.mzcx」「.mzcs」です。
    2. 保存するフォルダーは任意ですが、既定保存先フォルダ(AP_DATA_COMB)もあります。
      この既定フォルダに保存すると編集画面上で右クリック>[複合コンポーネント追加]を選択すると、フォルダに保存されているファイルの名前 が、サブメニューとして表示されます。
  2. 複合コンポーネントの保存先フォルダの変更
    1. 複合コンポーネント保存先の既定フォルダは「MZPlatfromインストールフォルダ \AP_DATA_COMB」です。
      MZ Platformインストールフォルダ\etc内の 「platform.ini」ファイルの「CombinativeComponentsFolder」の値に任意のフォルダ名を指定して変更することが できます。

複合コンポーネント外部参照機能

  1. 外部参照機能

  2. 外部参照機能を使うと開発中に複数のアプリケーションで同一の複合コンポーネントを使用し、変更・修正がすべてのアプリ ケーションに反映されるようにするといった共有の仕組みを作ることができます。
    1. 参照元になる複合コンポーネントを保存しておきます。(拡張子「.mzcx」または「.mzcs」)
    2. 参照設定をする複合コンポーネントを右クリック>[属性情報設定...]で「ReferenceEnabled」の項を「true」 とします。
    3. 「Reference」の項にファイルまでのパスを設定します。
      複合コンポーネントの既定の保存フォルダであ る\MZ Platformインストールフォルダ\AP_DATA_COMBに保存した場合はファイル名だけでOKです。
      [設定]ボタンを押すと、複合コンポーネント名称が青色 に変わり、参照先が設定されていることが判ります。
    4. アプリケーションファイルを保存します。
    5. 参照元複合コンポーネントに変更がある場合は、複合コンポーネントの階層のみを保存します。
      参照先の複合コンポーネントにも変更が反映されます。

    ※開発終了後、参照設定を使用したアプリケーションをユーザーへ配布の際には複合コンポーネントも一緒に配布が必要になります。
     開発終了後は参照設定を使用しないでアプリケーションを保存することも一案です。
複合コンポーネント参照設定

複合コンポーネント内のイベント伝播

  1. イベントの伝播
  2. 複合コンポーネント内で発生したイベントは、そのままでは上位の階層に伝えることはできません。
    複合コンポーネント内で発生したイベントをきっかけとした接続処理を上位の階層で設定するために、イベントの伝播を行います。

    1. 接続例1)複合コンポーネント内の[ボタン]を押したら、上位の階層の[フレーム]を閉じる。
      1. [ボタン]を接続元コンポーネントとし、複合コンポーネントをアクションイベントの接続先とします。
      2. [複合コンポーネント]のメソッド「イベントを伝播させる(PFEvent)」またはメソッド「イベント番号を指定してイベントを伝 播させる(PFEvent,int)」を選びます。
        引数の取得方法は「イベント」です。
        メソッド「イベント番号を指定してイベントを伝播させる(PFEvent,int)」を選んだ場合は、上位階層でイベント番号による条件 分けが可能になります。
        イベント発生元のコンポーネントが違っても、発生イベント名は同一の場合もあり、区別して処理したいときに有効です。
      3. 上位階層に移動し、[複合コンポーネント]を右クリック>[イベント処理追加]で[アクションイベント]を選択します。
        伝播されているイベント名がメニュー表示されます。
        その他のイベントは[未定義イベント]として表示されます。

  3. [イベント生成]コンポーネントを利用した伝播
    1. [イベント生成]コンポーネントを使うと、イベントを任意のデータと一緒に発生させることができます。
      例えば[ボタン]を押したタイミングで他のコンポーネントのデータを複合コンポーネント外に伝播させる場合、[イベント生成]コンポーネント を 接続 先として、メソッドに適切なイベントを選び、引数に伝播したいデータを指定します。
      さらに[イベント生成]と複合コン ポーネントを接続して、外部に伝播させます。
    2. 接続例2)複合コンポーネント内の[ボタン]を押したら、[テーブル]のデータを取得し、伝播 させる
      1. [ボタン]を接続元コンポーネントとし、[イベント生成]コンポーネントをアクションイベントの接続先とします。
      2. メソッドを選択します。
        ここでは「データ生成イベント」を選んでいます。
        伝えたいデータとイベント番号を引数に設定します。
      3. [複合コンポーネント]のメソッド「イベントを伝播させる(PFEvent)」を選びます。
        イベント番号は[データ設定イベント]でイベントを発生させるときに設定しているので、「イベントを伝 播させる(PFEvent)」の方を選んでも、イベント番号とともに伝播されます。
      4. [イベント生成]コンポーネントを接続元とし、[イベント処理追加]で「データ生成イベント」を選択します。
        全てのイベントが選択可能なので注意してください。
      5. 上位階層に移動し、[複合コンポーネント]を右クリック>[イベント処理追加]で[データ生成イベント]を選択します。
        伝播されているイベント名がメニュー表示されます。
        接続先のメソッドの引数にイベント内包データを選択すると、伝播されたデータが取得できます。

    [編集画面図]右側の接続先をクリックするとメソッド情報設定画面図が表示されます。

提供されている複合コンポーネント

    \MZ Platformインストールフォルダ\AP_DATA_COMBフォルダに保存して あるファイルは、ビルダー編集画面上で右ク リッ ク>[複合コンポーネント追加]>選択時にサブメニューとして表示されます。
    保存されている複合コンポーネントの機能は以下の通りです。
    コンポーネント名 分類 主な機能
    グラフ化モジュール.mzcx
    グラフ
    テーブルデータを整形の手間をかけずにグラフにすることができます。
    MySQLIF.mzcx"
    ジャグリング (Lesson.10).mzcx"
    フォルダ管理 (Lesson.7).mzcx"
    気象情報 (Lesson.8).mzcx"
    住所録 (Lesson.6).mzcx"
    都道府県情報 (Lesson.9).mzcx"
    チュートリアル
    チュートリアルを進める上で必要なデータが、予め入っています。
    テーブル日付データ文字列変換.mzcx
    テーブル
    [テーブル]の日付型列を文字列型列に変換します。
    稼働日時情報.mzcx"
    稼働日時情報_2(勤務情報設定機能拡張版).mzcx"
    稼働日時
    [ガントチャート]等で稼働日時を表示する際に便利な休日や稼働時間などの詳細を設定、取得できる機能が入っています。
    Common.mzcx"
    CommonList.mzcx"
    MakeQuery.mzcx"
    MySQLIF.mzcx"
    ProductDialog.mzcx"
    RegProduction.mzcx"
    StaffDialog.mzcx"
    金型履歴
    サンプルの金型履歴管理アプリケーションの作成に必要なコンポーネントが入っています。
    プロセス管理.mzcx
    プロセス

    mzpfdtbs.mdb"
    グラフ表示.mzcx"
    データベース連携.mzcx"
    テーブル入力.mzcx"
    パラメータ相互代入.mzcx"
    ファイル入出力.mzcx"
    フィールド入力.mzcx"
    フローチャート.mzcx"
    計算ツール.mzcx"
    図面・テキスト編集.mzcx"
    分岐.mzcx"
    合成モジュール

    帳票PDF出力.mzcx"
    日時選択.mzcx"
    Web機能
    Webアプリケーションを作成する際、標準コンポーネントだけでは難しい機能を実現します。