基本仕様 第 6 章 前の章 次の章

6. メンバの機能概要

この章では、MANDALA.net 実動フレームワークのメンバの機能概要および主要なメンバについてご紹介いたします。 メンバとは、フレームワークが提供している便利な機能のことであり、その実体は、メソッドまたはプロパティという形態をしています (すなわち、メンバとはメソッドまたはプロパティのことです)。 なお、マニュアル 「MANDALA.net メンバ一覧」 には、ここで述べる主要メンバを含めた全メンバの仕様が載っていますので、適宜ご参照ください。

メンバと対照的なのは、フックメソッドです。フックメソッドは、フレームワークの中から呼び出されて何らかの処理 (主にビジネスロジックに関する処理) をするものです。 そして、フレームワークとフックメソッドの連携動作によって、アプリケーションプログラムのほとんどの仕様は実現できるのですが、少しばかり実現できない仕様が残るかもしれません。 このようなところは、フックメソッド (またはその延長線上のメソッド) から、フレームワークの中のメンバを呼び出すことによって実現できるものです。 メンバとは、アプリケーションプログラムの中から必要に応じて呼び出して使うもので、いろいろな便利な機能を果たすものです。

MANDALA.net 実動フレームワークの中には、数多くのメンバ、すなわち 70 ほどのメソッドおよび 110 ほどのプロパティが含まれています。 メンバは数が多いので、この章では、その機能概要および主要なメンバに関する知識を得ておき、実際に使うときにはマニュアル 「MANDALA.net メンバ一覧」 を参照するのがよいでしょう。 なお、メンバの中には、厳密にいうと単なる変数もありますが、MANDALA.net のマニュアルの中では変数とプロパティを区別せずに、一括してプロパティとして扱っています。

各メンバは、ツーピーススタイルの場合にローカル側でもセントラル側でも使えるものが多いのですが、一部のメンバはセントラル側で使えなかったり、ローカル側で使えなかったりするものもありますので、注意が必要です。 これについては、個々のメンバごとにマニュアル 「MANDALA.net メンバ一覧」 を参照してください。 あるいは、マニュアル 「MANDALA.net メンバ一覧」 の左フレームの目次を配置別にすると、その一覧を見ることができます。

メンバの所属と使う際の書き方

メンバは、クラス ItemBase に所属するものと、FormBase に所属するものに大別されます。

ItemBase に所属するメンバは、以下のように ItemBase のインスタンス、たとえば iB で修飾するようにプログラミングして使います。

iB.setValue(項目値)

FormBase に所属するメンバは、以下のように FormBase のインスタンス、たとえば fB で修飾するようにプログラミングして使います。

fB.StatusOut(メッセージ, )

なお、静的共用属性 (Shared, static) のメンバについては、以下のようにクラス名 (たとえば FormBase) で修飾するようにプログラミングして使います。

FormBase.LeftWid(文字列, 文字列幅)

メンバの機能

メンバは、機能的には以下の 20 に分類できます。

以下には、それぞれの機能概要および主要なメンバについて書いてあります。 なお、それぞれの機能の全メンバについては、マニュアル 「MANDALA.net メンバ一覧」 の左フレームの目次を機能別にすると、その一覧を見ることができます。

◇ 操作の案内に関するメンバ

操作の案内に関するメンバは、アプリ操作者の注意を喚起するためにビープ音を鳴らしたり、メッセージを表示したりする機能をもっています。 一般に MANDALA フォームには、ステータス表示域と呼ばれるメッセージ表示域が作られますが、ここにメッセージを表示したり、表示されたメッセージをクリアしたりすることができます。 この他に、メッセージボックスを表示して、アプリ操作者からの応答を受け取ることもできます。 ツーピーススタイルの場合、MANDALA フォームやメッセージボックスは、ローカル側に表示されますが、ローカル側だけでなく、セントラル側においてもメッセージの表示し応答を受け取ることができます。

操作の案内に関する主要メンバには、以下があります。

Beep メソッド ビープ音を鳴らす。
MessageBoxShow メソッド ローカル側にいるアプリ操作者のために、モーダルなダイアログボックスによってメッセージを表示して、アプリ操作者からの応答を待ち、受け取る。
StatusClear メソッド ステータス表示域のメッセージをクリアする。
StatusOut メソッド パラメタで指定されたメッセージをステータス表示域に表示する。

◇ 画面データの獲得と設置に関するメンバ

画面データの獲得と設置に関するメンバは、MANDALA コントロール に関する論理項目の値を獲得したり、値を設定したりする機能をもっています。 MANDALA コントロールTextBox で構成するのが典型ですが、TextBox の保持しているテキスト文字列を直接参照したり変更したりすることは禁止されています。 なぜなら、たとえばボディ部をスクロールさせると論理項目と TextBox の対応関係が変化して、対応関係がなくなることもあるからです。 そこで、直接ではなく、画面データの獲得と設置に関するメソッドなどを用いて値の獲得と設定を間接的に行うことが必要です。 なお、ヘッド部やテール部についても、同じようにする (一貫性を保つ) ために、画面データの獲得と設置に関するメソッドによって値の獲得と設定を行うようにしてください。

論理項目の項目値を獲得する別法として、フックメソッドのパラメタにその項目略称を記述する方法があります。 これは簡便で分かりやすい方法なので、これが使えるところでは、これを用いてください。 また、論理項目の項目値を設定する別法には、以下のフックメソッドの戻り値として指定することができます。 Derived 系フックメソッド (DerivedDerivedLC), または Furigana, InitVal, InitValLC, SList, Term の各フックメソッドの戻り値です。 この方法が使えるところでは、これを用いてください。 このように、画面データの獲得と設置に関するメンバを使う箇所は、最小限にすることをお勧めいたします。 画面データの獲得と設置に関するメンバを使うのは、データベースなどから読み込んだデータを画面の各項目に設定する場合、 および画面の各項目のデータをデータベースなどに書き出す場合だけに限るのがよいでしょう。

画面データの獲得と設置に関する主要メンバには、以下があります。

getValue メソッド パラメタで指定された論理項目の項目値を獲得する。
setValue メソッド (FormBase) パラメタで指定された論理項目の値をパラメタ項目値で指定された新たな値に変更するとともに、その論理項目が画面上に表示されていれば (表示範囲外にスクロールされていなければ) その新たな値を表示する。
setValue メソッド (ItemBase) パラメタで指定された論理項目の値をパラメタ項目値で指定された新たな値に変更するとともに、その論理項目が画面上に表示されていれば (表示範囲外にスクロールされていなければ) その新たな値を表示する。

◇ 文字列の幅に関するメンバ

文字列の幅に関するメンバは、文字列の幅、すなわち半角文字は 1 とみなし、全角文字は 2 とみなした一種の長さに関する文字処理をする機能をもっています。 MANDALA コントロールTextBox で構成するのが典型ですが、横スクロールをしなくても見ただけでその値が分かるように設計するのが普通です。 このために、通常 MANDALA コントロールには、全角文字の横幅が半角文字のきっちり 2 倍になっている非プロポーショナルフォント (固定ピッチフォント) を使います。 このような状況では、半角文字は 1 とみなし、全角文字は 2 とみなした一種の長さ (文字列の幅) に関する文字処理が必要になるもので、これをサポートしています。

文字列の幅に関する主要メンバには、以下があります。

LeftWid メソッド パラメタで指定された文字列の左端からパラメタで指定された文字列幅の部分文字列を切り出す。
LenWid メソッド パラメタで指定された文字列の文字列幅を獲得する。
MidWid メソッド パラメタで指定された文字列の部分文字列をパラメタで指定された開始位置から切り出す。
RightWid メソッド パラメタで指定された文字列の右端からパラメタで指定された文字列幅の部分文字列を切り出す。

◇ 文字色・背景色に関するメンバ

文字色・背景色に関するメンバは、MANDALA コントロールに関する論理項目の文字色や背景色を獲得したり、設定したりする機能をもっています。 MANDALA コントロールTextBox で構成するのが典型ですが、TextBox の文字色や背景色を直接制御することは禁止されています。 なぜなら、たとえばボディ部をスクロールさせると論理項目と TextBox の対応関係が変化して、対応関係がなくなることもあるからです。 そこで、直接ではなく、文字色・背景色に関するメソッドによって文字色や背景色の獲得と設定を間接的に行うことが必要です。 なお、ヘッド部やテール部についても、同じようにする (一貫性を保つ) ために、文字色・背景色に関するメソッドによってその獲得と設定を行うようにしてください。

文字色・背景色の設定は、エラー表示やブライト処理のようによく使われるものは MANDALA.net 実動フレームワークによって自動的になされます。したがって、文字色・背景色に関するメンバは、こうしたもの以外に特別な色制御をする場合に用いるものです。 なお、文字色・背景色については、項目の色指定 も参照してください。

文字色・背景色に関する主要メンバには、以下があります。

BackColors プロパティ 背景色パレットの色を示す。
ForeColors プロパティ 文字色パレットの色を示す。
GetCLs メソッド (FormBase) パラメタで指定された論理項目に設定されているパレット番号の組を獲得する。
GetCLs メソッド (ItemBase) その論理項目に設定されているパレット番号の組を獲得する。
SetCLs メソッド (FormBase) パラメタで指定された論理項目に、パラメタで指定されたパレット番号の組を設定することによって、文字色および背景色を設定する。
SetCLs メソッド (ItemBase) パラメタで指定されたパレット番号の組をその論理項目に設定することによって、文字色および背景色を設定する。

◇ データの変換・フォーマットなどに関するメンバ

データの変換・フォーマットなどに関するメンバは、主に旧 VB 6.0 との互換性を保つために用意したものです。 新規に開発するプログラムは、このメソッドではなく、各プラットフォームのデータの変換・フォーマットなどに関するメソッドを使うことをお勧めいたします。

◇ フォーカスの制御に関するメンバ

フォーカスの制御に関するメンバは、MANDALA コントロールの間のフォーカスの移動制御に関する機能をもっています。 各 MANDALA コントロールに関する論理項目は、インプット不可の表示項目なのか、またはそこにデータをインプット可能な入力項目なのか、に関する入出という情報をもっています。 この入出を変更することによって、フォーカスがいかない表示項目にすることも、フォーカスが留まる入力項目にすることもできます。 また、ボディ部や拡張ボディ部の最終明細行 (データが表示されている最終の明細行) よりも下に新しいデータをインプットできないように、その明細行にフォーカスがいかないように制御することもできます。 この他に、直接的にフォーカスを移動させることもできます。

フォーカスの制御に関する主要メンバには、以下があります。

CursorDirection プロパティ その画面の中でのフォーカスの移動方向を示す。
DeAppendable プロパティ ボディ部の最終明細行 (データが表示されている最終の明細行) よりも下に新しいデータをインプットできるかどうかを示す。
EDeAppendable プロパティ 拡張ボディ部の最終明細行 (データが表示されている最終の明細行) よりも下に新しいデータをインプットできるかどうかを示す。
InOutModeItem メソッド その項目を対象にして MANDALA.net の総括表に設定した 「入出」 のカレント値をパラメタで指定された入出の値に実行時に変更する。
InOutModeM メソッド パラメタで指定された項目 (ボディ項目または拡張ボディ項目の場合には全明細行の項目群) を対象にして MANDALA.net の総括表に設定した 「入出」 のカレント値をパラメタで指定された入出の値に実行時に変更する。
InOutModeN メソッド パラメタで指定された項目を対象にして MANDALA.net の総括表に設定した 「入出」 のカレント値をパラメタで指定された入出の値に実行時に変更する。
SetFocusLogically メソッド パラメタで指定された論理項目にフォーカスを移動する。

◇ 動作モードに関するメンバ

動作モードに関するメンバは、現動作モードを獲得したり、変更したりする機能をもっています。 なお、動作モードには、追加モード、選択モード、表示モード、更新モードの四つがあります。 追加モードは、画面アプリがデータベースにデータを追加する際に使われます。 選択モードは、画面アプリがデータベースからどのデータを読み込むのかを指定する際に使われます。 表示モードは、画面アプリがデータベースから読み込んだデータを表示してアプリ操作者に見てもらう際に使われます。 更新モードは、画面アプリがデータベースから読み込んだデータを更新して、ふたたびデータベースに書き戻す際に (データベースのデータの更新の際に) 使われます。

動作モードに関する主要メンバには、以下があります。

ChOprtLater メソッド パラメタで指定された動作モードに移行してよいかどうかをアプリ操作者に問い合わせ、許諾されればその動作モードに移行する。
Mode プロパティ その画面の動作モードを示す。

◇ デバッグ・情報収集に関するメンバ

デバッグ・情報収集に関するメンバは、Debug 構成において、各種のログを取るかどうかを制御する機能をもっています。 ログには、画面フックメソッド呼出し (ただし RelCheck は除く)、RelCheck フックメソッド呼出し、項目フックメソッド呼出し、ローカル・セントラル間の転送データサイズなどの種類があり、 これらのうちどどのログをとるのかを指定することができます。

デバッグ・情報収集に関する主要メンバには、以下があります。

DebugFormHook プロパティ Debug 構成において、画面フックメソッド呼出し (ただし RelCheck は除く) のログを取るかどうかを示す。
DebugItemHook プロパティ Debug 構成において、項目フックメソッド呼出しのログを取るかどうかを示す。
DebugRelCheck プロパティ Debug 構成において、RelCheck フックメソッド呼出しのログを取るかどうかを示す。
ShowTransferDataSize プロパティ Debug 構成において、転送データサイズのログを取るかどうかを示す。

◇ ローカル・セントラル間の通信に関するメンバ

ローカル・セントラル間の通信に関するメンバは、ローカル・セントラル間でオブジェクトを送付し、受領する機能をもっています。 また、ローカル・セントラル間で他のサイトのメソッドを実行して戻ってくる機能ももっています。 ただし、ローカル・セントラル間におけるデータの転送および制御の受け渡し処理は、通常 MANDALA.net 実動フレームワークによって自動的になされるので、 特別な場合以外はこれらのメンバを用いることはありません。

ローカル・セントラル間の通信に関する主要メンバには、以下があります。

invokeCentral メソッド (FormBase) パラメタで指定された送付オブジェクトをセントラル側に送信し、画面フックメソッド Central を呼び出し、その戻り値の受領オブジェクトをセントラル側から受信する。
invokeCentral メソッド (ItemBase) パラメタで指定された送付オブジェクトをセントラル側に送信し、項目フックメソッド Central を呼び出し、その戻り値の受領オブジェクトをセントラル側から受信する。
invokeLocal メソッド (FormBase) パラメタで指定された送付オブジェクトをローカル側に送信し、画面フックメソッド Local を呼び出し、その戻り値の受領オブジェクトをローカル側から受信する。
invokeLocal メソッド (ItemBase) パラメタで指定された送付オブジェクトをローカル側に送信し、項目フックメソッド Local を呼び出し、その戻り値の受領オブジェクトをローカル側から受信する。

◇ 論理項目の状態に関するメンバ

論理項目の状態に関するメンバは、各 MANDALA コントロールに関する論理項目の状態を管理する機能をもっています。 一般に、論理項目の状態管理は、MANDALA.net 実動フレームワークによって自動的になされるので、 特別な場合以外はこれらのメンバを用いることはありません。 ただし、フックメソッド GetEvent と論理項目の状態管理とは連動しないことがあるので、論理項目の状態に関するメンバを使うことが必要です。 たとえば、フックメソッド GetEvent が、もしもその画面の各項目へのインプットがすべて完了していなければならなかったり、 カレント項目へのインプットが行われている途中の状態であってはならなかったりする場合には、論理項目の状態に関するメンバを用いてください。

論理項目の状態に関する主要メンバには、以下があります。

CompleteCheck メソッド その画面の各項目へのインプットがすべて完了しているかどうかを調べる。
IsCurrentItemIncomplete メソッド カレント項目 (フォーカスされている項目) へのインプットが行われている途中の状態かどうかを調べる。
MakeCurrentItemComplete メソッド カレント項目 (フォーカスされている項目) に対して Check 系 フックメソッドを呼び出すことによって、インプットが行われている途中の状態ではなくする。

◇ データのインプットと表示に関するメンバ

データのインプットと表示に関するメンバは、MANDALA コントロールへのデータのインプットと表示に関する各種の制御情報 (総括表で指定されたもの) を獲得したり、変更したりする機能をもっています。 通常、これらの制御情報としては、総括表で指定されたものを用いるので、特別な場合以外はこれらのメンバを用いることはありません。

◇ スクロールに関するメンバ

スクロールに関するメンバは、スクロールの状態を調べたり、スクロールバーを調整したりする機能をもっています。 スクロールの制御は、MANDALA.net 実動フレームワークによって自動的になされるので、 スクロールに関する処理を行う必要はほとんどありません。

スクロールに関する主要メンバには、以下があります。

TopDe プロパティ スクロールの状態、すなわちボディ部の明細行のうち画面上に表示されているものの先頭の明細行インデックスを示す。
TopEDe プロパティ スクロールの状態、すなわち拡張ボディ部の明細行のうち画面上に表示されているものの先頭の明細行インデックスを示す。

◇ 論理項目の座標系に関するメンバ

論理項目の座標系に関するメンバは、MANDALA コントロールに関する論理項目の座標系を管理する機能をもっています。 すなわち、論理項目の座標系には、各論理項目を一意に識別するための論理項目インデックスがあり、さらにボディ部や拡張ボディ部の明細行を一意に識別するための明細行インデックスがあります。 そして、画面が幾つの論理項目でどのように構成されているのか、そしてどこまでの明細行にデータが詰まっているのか、フォーカスされている論理項目はどれか、などを管理します。

論理項目の座標系に関する主要メンバには、以下があります。

CpPx プロパティ その項目の論理項目インデックスを示す。
De プロパティ カレント明細行の明細行インデックスを示す。
LastDe プロパティ ボディ部の最終明細行 (データが表示されている最終の明細行) の明細行インデックスを示す。
LastEDe プロパティ 拡張ボディ部の最終明細行 (データが表示されている最終の明細行) の明細行インデックスを示す。
MaxDe プロパティ ボディ部の明細行の明細行インデックスの最大値を示す。
MaxEDe プロパティ 拡張ボディ部の明細行の明細行インデックスの最大値を示す。
Px プロパティ フォーカスされている項目の論理項目インデックスを示す。

◇ 物理項目の座標系に関するメンバ

物理項目の座標系に関するメンバは、MANDALA コントロールに関する物理項目の座標系を管理する機能をもっています。 すなわち、物理項目の座標系には、各物理項目を一意に識別するための物理項目インデックスがあり、さらにボディ部や拡張ボディ部の明細行を一意に識別するための明細行インデックスがあります。 そして、画面が幾つの物理項目でどのように構成されているのか、そしてどこまでの明細行にデータが詰まっているのか、フォーカスされている物理項目はどれか、などを管理します。

◇ 初期化処理に関するメンバ

初期化処理に関するメンバは、画面全体、ボディ部全体、拡張ボディ部全体、カレント明細行を初期化する機能をもっています。 ただし、初期化処理は、通常 MANDALA.net 実動フレームワークによって自動的になされるので、 特別な場合以外はこれらのメンバを用いることはありません。

◇ 再計算 (Recalc) 処理に関するメンバ

再計算 (Recalc) 処理に関するメンバは、画面全体、ボディ部全体、拡張ボディ部全体、カレント明細行を初期化する機能をもっています。 ただし、初期化処理は、通常 MANDALA.net 実動フレームワークによって自動的になされるので、 特別な場合以外はこれらのメンバを用いることはありません。

◇ 各種オブジェクトに関するメンバ

各種オブジェクトに関するメンバは、いろいろなオブジェクト (インスタンス) を見つけ出す機能をもっています。 見つけ出すことのできるオブジェクトには、MANDALA.net フォームのインスタンス、画面フッククラスのインスタンス、MANDALA.net コントロールに関する論理項目のインスタンス (ItemBase のインスタンス) などがある。

各種オブジェクトに関する主要メンバには、以下があります。

getItemBase メソッド パラメタで指定された論理項目に対応する ItemBase のインスタンスを獲得する。
getItemBaseFromPx メソッド パラメタで指定された論理項目に対応する ItemBase のインスタンスを獲得する。
myForm プロパティ その画面のフォームインスタンスを示す。
myFormHook メソッド その画面の画面フッククラスのインスタンスを示す。

◇ 終了・後始末処理に関するメンバ

終了・後始末処理に関するメンバは、アプリケーションプログラムの終了および後始末に関する機能をもっています。

終了・後始末処理に関する主要メンバには、以下があります。

EmergencyExit メソッド アプリケーションプログラムを緊急終了させる。

◇ 明細行の状態に関するメンバ

明細行の状態に関するメンバは、特別な場合以外に用いることはありません。

◇ その他のメンバ

その他のメンバは、いろいろな機能をもっていますが、たとえばプログラムの起動時に指定したパラメタの文字列を獲得したり、パラメタで指定された指示に従う処理を実行したりする機能をもっています。

その他のメンバに関する主要メンバには、以下があります。

Command メソッド そのアプリケーションプログラムの起動時に指定したパラメタの文字列を獲得する。
PerformCommand メソッド パラメタで指定された指示に従う処理を実行する。