6章 再び要素モデルの作成
6.2 色々な要素モデル
(堰モデルのプロパティ画面作成)
前頁で作成した堰の要素モデル用の独自プロパティ画面を作成してみます。
すでに「KinematicWave」要素モデル用のプロパティ画面を製作した「MyExerciseModelProperty」に対して、堰要素モデル用のプロパティ画面を追加します。
プロパティ画面を作成するときの手順をもう一度復習してみます。
(1) スクリーンクラス(MySluiceModelPropertyScreen.)のスタブ作成
(2) Formクラス(MySluiceModelPropertyForm)のスタブ作成
(3) ファクトリークラス内メソッド(CreatePropertyScreen)の実装
(4) スクリーンクラス内メソッドの実装
(5) Formクラス内メソッドの実装
上記の手順に従って、プロパティ画面を作成します。
(1)スクリーンクラス(MySluiceModelPropertyScreen.)のスタブ作成
(1−1) 型紙である「\CommonMP\Source\HYMCO\OptionImpl\MyModelProperty\Screen\MyModelPropertyScreen.cs」ファイルを
追加するプロジェクトである「\CommonMP\Source\HYMCO\OptionImpl\MyExerciseModelProperty\Screen\」
下にコピーし、ファイル名称を「MySluiceModelPropertyScreen.cs」とします。
(1−2) コピーして生成された「MySluiceModelPropertyScreen.cs」を、プロジェクト「MyExerciseModelProperty.csproj」に追加します。
(1−3) 今作成した「MySluiceModelPropertyScreen.cs」ファイル内の クラス名「McMyModelPropertyScreen」を「MySluiceModelPropertyScreen」に変更します。
(1−4) 関連するネームスペース「using
CommonMP.HYMCO.OptionImpl.MyExerciseModelLIB.DetailForm;」を追加します。
(Formクラスのネームスペース名)
(2) Formクラス(MySluiceModelPropertyForm)のスタブ作成
(2−1)プロジェクトのDetailFormフォルダー内に フォームクラス:「MySluiceModelPropertyForm」を新規作成します。
マウス右ボタンクリックにより 追加−新しい項目を選択
Windowsフォームを選択し、ファイル名を MySluiceModelPropertyForm とする
生成されたファイルの ネームスペース名は namespace
CommonMP.HYMCO.OptionImpl.MyExerciseModelLIB.DetailForm であることに注意してください。
これが、(1−4)の作業手順で 「using
CommonMP.HYMCO.OptionImpl.MyExerciseModelLIB.DetailForm;」 を追加した理由です。
(2−2)作成された MySluiceModelPropertyForm を右クリックし 「ソースを開く」を選択して ソースを開きます。
ソース上で親クラスを Form から MySluiceModelPropertyForm
: McDotNetModelCellPropertyDetailBaseForm,
McModelCellPropertyDetailFormIFに変更します。
MySluiceModelPropertyForm : Form
↓
MySluiceModelPropertyForm : McDotNetModelCellPropertyDetailBaseForm,
McModelCellPropertyDetailFormIF
また、McDotNetModelCellPropertyDetailBaseForm、McModelCellPropertyDetailFormIF の定義を行っているソースを取り込むため 下記
using 文を追加します。
↓ 追加
using
CommonMP.HYSSOP.Interface.HSData;
using
CommonMP.HYSSOP.Interface.HSController;
using
CommonMP.HYSSOP.Interface.HSViewer;
using
CommonMP.HYSSOP.CoreImpl.HSData;
using
CommonMP.HYSSOP.CoreImpl.HSController;
using
CommonMP.HYSSOP.CoreImpl.HSTools;
using CommonMP.HYMCO.Interface;
using
CommonMP.HYMCO.Interface.Viewer;
using
CommonMP.HYMCO.Interface.Data;
using
CommonMP.HYMCO.CoreImpl.Controller;
using
CommonMP.HYMCO.CoreImpl.Data;
using
CommonMP.HYMCO.CoreOptions.McViewer.DotNetViewer;
↑ 追加
(2−3)McModelCellPropertyDetailFormIF で実装すべき EditParameter メソッドスタブを追加します。
MySluiceModelPropertyFormスタブ
using CommonMP.HYMCO.Interface; |
public class MyExerciseModelPropertyScreenFactory :
McPropertyScreenFactoryBase |
public class McMyExerciseModelPropertyScreen :
McDotNetModelCellPropertyScreenBase { public override McDotNetModelCellPropertyDetailBaseForm CreatePropertyDetailForm() { return new McMyExerciseModelDetailForm(); } } |
public partial class MySluiceModelPropertyForm :
McDotNetModelCellPropertyDetailBaseForm,
McModelCellPropertyDetailFormIF { 。。。。。。。。。。。 public void EditParameter() { //プロパティ情報 McCellModelPropertyInfo csRtnCellPrptyDt = m_csPropertyInfo as McCellModelPropertyInfo; long iN=0; double dD=0.0; if (csRtnCellPrptyDt != null) { csRtnCellPrptyDt.GetInfo("N", ref iN); this.textBox_N.Text = iN.ToString(); 。。。。。。。 } 。。。。。。。。。。 } |
private void
ParaSet_Click(object sender, EventArgs
e) { { // パラメータチェックOKならば DialogResult = DialogResult.OK; } long iN = 0; double dD = 0.0; // プロパティ情報 McCellModelPropertyInfo csRtnCellPrptyDt = m_csPropertyInfo as McCellModelPropertyInfo; if (csRtnCellPrptyDt != null) { iN = long.Parse(this.textBox_N.Text); csRtnCellPrptyDt.SetInfo("N", iN); 。。。。。。。。。。。。 } // 初期化情報 McInitialInfo csRtnInitDt = m_csInitialInfo as McInitialInfo; if (csRtnInitDt != null) { dD = double.Parse(this.textBox_H0.Text); csRtnInitDt.SetInfo("dh", dD); } Close(); } private void Cancel_Click(object sender, EventArgs e) { DialogResult = DialogResult.Cancel; Close(); } |
ここで作成した要素モデル開発プロジェクト(Ex16_CommonMP.lzh)
ダウンロードしたら解凍して生成されたフォルダー「MyExerciseModel」と「MyExerciseModelProperty」を \CommonMP\Source\HYMCO\OptionImpl\ 下に置きます。
解凍して生成されたプロジェクト:MyExerciseModel.csproj を ディバッグ用ソリューションに追加し、スタートアッププロジェクト(TestModelDeveloperMainExp)の依存関係に追加します。
また、 解凍して生成された、「MyExerciseStep1」フォルダーを \CommonMP\CommonMPData\ 下に置きます。
初版:2013/08/28 |