(前頁)<<      >>(次頁)          (Up)

6章 再び要素モデルの作成
6.1 独自プロパティ画面の作成
(その4 プロパティ画面の完成)


 プロパティ画面のスタブ作成時に フレームワークを動作させるための殆どの処理は完成しています。 
 行うべき事は、画面へ部品を配置して画面本体を作成し、オペレーターが画面で設定した値をプロパティデータに設定する処理を実装するだけです。

 画面の作成は Micorosoft Visutal C# から行います。
 Microsoft Visual C# の ソリューションエクスプローラーから フォームクラス(MyExerciseModelDetailForm)を選択し ポップアップメニューを表示して「デザイナの表示」を選択します。

      
 
 Micosoft Visual C#のツールボックスを表示し、デザイン画面上に 画面部品を貼り付けていきます。
      
      

                    ↓ 部品貼り付け完了
            

 画面の動作は、以下の様になります。

(1)画面表示時に、プロパティデータ、及び初期化データの現在設定値を画面に表示する。
(2)オペレーターが画面上で設定する。
(3)Setボタン押下の時、画面上に設定された情報を取り込み、プロパティデータ、初期化データにセットし、画面を閉じる。


 そこで、(1),(3)に対応する処理を 実装します。

(1)現在設定値の表示処理実装

 画面を表示する時には、対象要素モデルのプロパティデータ、初期化データのインスタンスが 画面の親クラスのメンバー変数に設定されています。
 このインスタンスを取得し、各データの設定内容を画面に表示します。
 画面表示時に呼ばれるメソッドは  public void EditParameter()  で、型紙内に定義されているので、その中に処理を実装します。

        public void EditParameter()
        {
            // 画面表示情報編集

            // プロパティデータ、初期化データクラスのインスタンスを取得する。
            m_csKnmtcPrpty = m_csPropertyInfo as MyKinematicWavePropertyData;
            m_csKnmtcInit = m_csInitialInfo as MyKinematicWaveInitialData;

            // 画面部品に 各データ内の情報を設定する。
            textBoxNX.Text = m_csKnmtcPrpty.NX.ToString();
            textBoxSLOPE.Text = m_csKnmtcPrpty.SLOPE.ToString();
            textBoxWIDTH.Text = m_csKnmtcPrpty.WIDTH.ToString();
            textBoxROUGH.Text = m_csKnmtcPrpty.ROUGH.ToString();

            textBoxQ0.Text = m_csKnmtcInit.m_dInitQ.ToString();
        }



(2)「設定」ボタン押下時の処理実装

 型紙画面には、最初から「Set」、「Cancel」、「Input file」、「Output file」 ボタンが貼り付けられており、各ボタンを押下した時に呼ばれるメソッドとして、それぞれ「ParaSet_Click」、「Cancel_Click」、「FileOpen_Click」、「FileSave_Click」が定義されています。

 「Set」ボタン押下時呼ばれる「ParaSet_Click」メソッド内に 画面部品に設定された情報を取り込みその情報をプロパティデータ、初期化データに設定する処理を実装します。

        private void ParaSet_Click(object sender, EventArgs e)
        {
            // 設定内容登録
            //if (入力パラメーター等チェック)
            {   // パラメータチェックOKならば
                DialogResult = DialogResult.OK;
            }
            //else
            //{ // パラメーターチェックNGならば
            //    DialogResult = DialogResult.Cancel;
            //}

            // プロパティデータ、初期化データクラスのインスタンスを取得する。
            m_csKnmtcPrpty = m_csPropertyInfo as MyKinematicWavePropertyData;
            m_csKnmtcInit = m_csInitialInfo as MyKinematicWaveInitialData;

            // 画面部品に 各データ内の情報を設定する。
            m_csKnmtcPrpty.NX = long.Parse(textBoxNX.Text);
            m_csKnmtcPrpty.SLOPE = double.Parse(textBoxSLOPE.Text);
            m_csKnmtcPrpty.WIDTH = double.Parse(textBoxWIDTH.Text);
            m_csKnmtcPrpty.ROUGH = double.Parse(textBoxROUGH.Text);

            m_csKnmtcInit.m_dInitQ = double.Parse(textBoxQ0.Text);

            Close();
        } 



(3)プロパティ画面の動作確認

 要素モデル開発用のCommonMPを起動し、KinematicWaveモデルのプロパティ画面を表示し、動作を確認します。

    


(4)実動作環境での動作確認

 実動作環境で動作させるには作成したDLLのを 所定のディレクトリに配置する必要があります。
 まず、Release版を作成するために ソリューションに対して 「リビルド」します。
 MyExerciseModelProperty.dllは .\CommonMP\Source\HYMCO\OptionImpl\ModelDeveloperExpressEdition\bin\Release\下に生成されます。此処で制作されたMyExerciseModelProperty.dllを \CommonMP\Execute\bin\ 下にコピーします。
 \CommonMP\Execute\bin\CommonMPMain.exeを起動し、プロパティ画面が表示されればOKです。
 


 ここで作成した要素モデル開発プロジェクト(Ex13_CommonMP.lzh

 ダウンロードしたら解凍して生成されたフォルダー「MyExerciseModel」、「MyExerciseModelProperty」を \CommonMP\Source\HYMCO\OptionImpl\ 下に置きます。   
 解凍して生成されたプロジェクト:MyExerciseModel.csproj 、MyExerciseModelProperty.csprojを ディバッグ用ソリューションに追加し、スタートアッププロジェクト(TestModelDeveloperMainExp)の依存関係に追加します。 また、 解凍して生成された、「MyExerciseStep1」フォルダーを \CommonMP\CommonMPData\ 下に置きます。



(前頁)<<      >>(次頁) 

初版:2013/08/04 |