メンバ一覧 Renew | 前のメソッド 次のメソッド |
VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)
◇ 機能および役割
以前に使用した MANDALA フォームをリニューアルして、新品のフォームの場合と同様に使うことを可能にする。
このメソッドを用いて、MANDALA フォームを使いまわすことによって、使うたびに毎回フォームをコンストラクトするというようなオーバヘッドを軽減することができる。
◇ 所属クラス (ツーピーススタイルの場合にこのメソッドが宣言されているクラス)
AppliTech.WorkFrame.FormBase (ローカル)
◇ 呼出し方
fB.Renew()
(ただし fB は、クラス FormBase のインスタンス)
◇ 戻り値の型および意味
(戻り値なし)
◇ パラメタの型および意味
(パラメタなし)
◇ 例外の発生 (誤った呼出しの際に発生する例外)
「フォームがアクティブなので処理できません (Renew)」
◇ 使用上のヒントと注意事項
このメソッドによって、使い終わったフォームを初期化することによって再生させて、Open 以降のフックメソッドを再実行させることができる。
単一フォームのアプリケーションではこのメソッドを使用することはない。 このメソッドが必要になるのは、複数のフォームを用いるアプリケーションで、 かつ、いったん表示を終了したフォームのインスタンスを保持したままにし、使いまわしたい場合である。 複数のフォームを使用する場合でも、使い終わったフォームを毎回破棄するのであればこのメソッドを使用する必要はない。
あるフォーム (以後これを先発フォームと呼ぶ) から別のフォーム (以後これを後発フォームと呼ぶ) をモーダル表示し、後発フォームのインスタンスを保持したままで元の先発フォームに戻った後に、再度、後発フォームを表示すると、目指す処理が実施できないことがある。
たとえば、後発フォームのアプリの型がデータ更新型である場合、選択モードでの入力を行うようになっていれば問題ないが、選択モードでは入力を行わずに Select 条件を先発フォームから引き渡すような場合は、後発フォームの Current フックメソッドが実行されることになる。
この状態で後発フォームを再度表示すると Current フックメソッドが正しい選択条件を得ることができない。
このような場合、先発フォーム側から後発フォームの Renew メソッドを呼び出し、処理を先頭からやりなおさせることによって、目指す処理が可能になる。
後発フォームで行う初期設定処理に関しては、重複しないように注意することが必要である。 たとえば、データベースへの接続を Open で行うことにしていると、Renew を呼び出すたびに接続処理を行ってしまう恐れがある。 後発フォーム側では、フォームの終了時に接続を解除するか、またはフックメソッド Open の中で以前に接続済であれば、その接続を使うなどの対策が必要である。
◇ 関連事項
◇ 使用例
Friend Function 家族構成入力_GetEvent(ByVal fB As FormBase) As Boolean
Dim errCount As Integer = fB.CompleteCheck(False)
If errCount > 0 Then
Return FormBase.GETEVENT_Deny
End If
If fri_生徒家族構成管理 Is Nothing Then
fri_生徒家族構成管理 = New Fr_生徒家族構成管理(fB)
Else
fri_生徒家族構成管理.getFormBase().Renew()
End If
Dim res As DialogResult = fri_生徒家族構成管理.ShowDialog(fB.myForm)
Return FormBase.GETEVENT_Allow
End Function
internal bool 家族構成入力_GetEvent( FormBase fB ) {
int errCount = fB.CompleteCheck(false);
if (errCount > 0) {
return FormBase.GETEVENT_Deny;
}
if (Fri_生徒家族構成管理 == null) {
Fri_生徒家族構成管理 = new Fr_生徒家族構成管理(fB);
}
else {
Fri_生徒家族構成管理.getFormBase().Renew();
}
DialogResult res = Fri_生徒家族構成管理.ShowDialog(fB.myForm);
return FormBase.GETEVENT_Allow;
}
boolean 家族構成入力_GetEvent( FormBase fB )
throws Exception {
int errCount = fB.CompleteCheck(false);
if (errCount > 0) {
return FormBase.GETEVENT_Deny;
}
if (Fri_生徒家族構成管理 == null) {
Fri_生徒家族構成管理 = new Fr_生徒家族構成管理(fB);
}
else {
Fri_生徒家族構成管理.getFormBase().Renew();
}
DialogResult res = fB.ShowDialog(Fri_生徒家族構成管理.getJFrame());
return FormBase.GETEVENT_Allow;
}