フック一覧 Indicate (画面フック) | 前の画面フック 次の画面フック |
VB C# ALL プログラミング言語によるフィルタ (ここで選んだ言語で選別された説明や図だけが表示されます)
この画面フックメソッドは、主にアプリフレームと呼ばれる画面アプリのための上位フレームワークを設計する方々がお使いになるものです。一般のアプリ開発者の方々は、上位フレームワーク設計者から示された情報があれば、必ずしもここの内容を詳細に知る必要はありません。
◇ 役割 (この画面フックメソッドに委託されている処理)
この画面アプリを表示モードに移行してよいかどうかの関門チェックを行う。そして、必要に応じて表示モードに移行するにあたっての初期設定処理 (下図の中の緑色で示した表示モード向け初期設定処理) を行う。
役割を果たした後の動作: 関門チェックを通過し初期設定処理が済んだ後は、直ちに表示モードになり、画面がひとたび初期化された後に、画面フックメソッド Current が呼び出されて、カレント画面データが画面に表示されることになる。
この後はアプリ操作者の指示次第でいろいろな処理の流れになり得るが、アプリ操作者が表示モードで実行の指示 (Execute 指示) を行うことで、画面フックメソッド NextFh が呼び出されて、次の画面データが画面に表示されるのが本流である。
関門チェックにおいて拒否した場合 (つまり表示モードへの移行を許可しなかった場合) は、動作モードは変わらず元のままであり、何事もなかったかのように画面上のデータも変更されずに残る。
◇ 配置 (ツーピーススタイルの場合にこの画面フックメソッドをどこに配置できるか)
ローカルピースかセントラルピースかのどちらか一方に配置する。または、どちらにも配置しない。
◇ 代表的な書き方 (詳しい構文はフックメソッドの書き方を参照)
VB での書き方:
Friend Function Indicate(パラメタ宣言列) As Boolean
または
Friend Function 画面略称_Indicate(パラメタ宣言列) As Boolean
C# での書き方:
internal bool Indicate(パラメタ宣言列)
または
internal bool 画面略称_Indicate(パラメタ宣言列)
Java での書き方:
boolean Indicate(パラメタ宣言列)
または
boolean 画面略称_Indicate(パラメタ宣言列)
なお、フック名としては、Indicate の他に表示モードを用いることができる。
◇ 呼び出される契機 (以下が切っ掛けとなりこのフックメソッドが呼び出される)
アプリ操作者からこの画面を表示モードに変えよという指示 (Indicate 指示) がなされたとき。または、動作モードの遷移に関する画面フックメソッド (Append, Delete, IndicateExec, SelectFh, SelectExec, Update) の戻り値によって表示モードに変えよという伝言がなされた後。
Indicate 指示とは、アプリ操作者がボタン Cm_Indicate をクリックすること、またはメニュー項目 Mn_Indicate をクリックすることか、これに相当する操作 (対応するショートカットキーの押下) をすること、または Indicate に対応づけられたファンクションキーを押下することを意味する。
◇ 戻り値の意味とデフォルト動作 (戻り値による FormBase への伝言)
FormBase.INDICATE_Allow (= True): 表示モードへの移行を許可せよ。
FormBase.INDICATE_Deny (= False): 表示モードへの移行を拒否せよ。FormBase は、この伝言を受けると、アプリ操作者からなされた Indicate 指示を無視して、指示がなされなかったかのように振る舞う。つまり、アプリ操作者からなされた Indicate 指示は無効になる。
デフォルト動作: Indicate 画面フックメソッドが組み込まれていない場合の動作は、FormBase.INDICATE_Allow が設定された場合と同様である。
◇ 代行メッセージ (処理の流れに応じて発せられるメッセージ; カスタマイズ可能)
メッセージコード: "INDICATE"
"表示モードに変更してよいですか? (一部のデータをインプットしていても、 なかったものとみなされます。)"
◇ 使用上のヒントと注意事項
このフックメソッドの中で、表示モードへの移行を拒否することにした場合は、適当なメッセージをアプリ操作者に向けて発してから、戻り値を FormBase.INDICATE_Deny にしてください。
アプリ操作者は、何のメッセージも示されないと、自分の指示どおりに表示モードへの移行がなされるものと期待する。そこで、この期待に応えるためには、戻り値を FormBase.INDICATE_Allow にすることが必要である。
データ照会型アプリのプログラムの開始時には、戻り値として必ず FormBase.INDICATE_Allow を設定してください。
◇ 関連事項
動作モードの変更を関門チェックする画面フックメソッドには、この他に AppendChk, SelectFh, UpdateChk がある。
◇ 使用例
' 表示モードへの移行の際のチェックを行う (Indicate)。 Friend Function 表示モード(ByVal fB As FormBase) As Boolean If fB.Mode = FormBase.MODE_Append AndAlso 画面データキー = String.Empty Then Return FormBase.INDICATE_Deny Else If Not CType(fB.myForm, Fr_受注業務).BackColor.Equals(System.Drawing.ColorTranslator.FromOle(&HC0FFFF)) Then CType(fB.myForm, Fr_受注業務).BackColor = System.Drawing.ColorTranslator.FromOle(&HC0FFFF) CType(fB.myForm, Fr_受注業務).Refresh() End If ' Return FormBase.INDICATE_Allow End If End Function ' 表示モード
// 表示モードへの移行の際のチェックを行う (Indicate)。 internal bool 表示モード( FormBase fB ) { if (fB.Mode == FormBase.MODE_Append && 画面データキー == string.Empty) { return FormBase.INDICATE_Deny; } else { if (!((Fr_受注業務)fB.myForm).BackColor.Equals(System.Drawing.ColorTranslator.FromOle(0xC0FFFF))) { ((Fr_受注業務)fB.myForm).BackColor = System.Drawing.ColorTranslator.FromOle(0xC0FFFF); ((Fr_受注業務)fB.myForm).Refresh(); } // return FormBase.INDICATE_Allow; } } // 表示モード
// 表示モードへの移行の際のチェックを行う (Indicate)。 boolean 表示モード( FormBase fB ) { if (fB.Mode == FormBase.MODE_Append && 画面データキー.length() == 0) { return FormBase.INDICATE_Deny; } else { if (fB.myForm.getBackground().getRGB() != 0xC0FFFF) { fB.myForm.setBackground(new Color(0xC0FFFF)); ((Fr_受注業務) fB.myForm).repaint(); } // return FormBase.INDICATE_Allow; } } // 表示モード