メインコンテンツまでスキップ
バージョン: 20 R7 BETA

OBJECT Get pointer

OBJECT Get pointer {( selector {; objectName {; subformName}})} -> 戻り値

引数説明
selectorIntegerオブジェクトカテゴリ
objectNameTextオブジェクト名
subformNameTextサブフォームオブジェクト名
戻り値Pointerオブジェクト変数へのポインタ

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

OBJECT Get pointerコマンドはフォームオブジェクトの変数へのポインタを返します。

このコマンドを使用して、selector引数の値に基づき、異なるオブジェクトを指定できます。この引数には*Form Objects (Access)*テーマの定数を渡します:

  • Object current (selector省略時のデフォルト): このセレクタを渡すかselector引数を省略した場合、コマンドはカレントオブジェクト (メソッドを実行しているオブジェクト) に割り当てられた変数へのポインタを返します。
    注: これは以前のSelfコマンドとまったく同じ動作です。Selfコマンドは互換性の目的でのみ保持されています。
  • Object with focus: このセレクタを渡すと、コマンドはフォーム内でフォーカスを持つオブジェクトに割り当てられた変数へのポインタを返します。残り2つのオプション引数は渡されても無視されます。
    : これは完全にFocus objectコマンドと同じ動作です。Focus objectコマンドは4D v12で廃止予定となりました。
  • Object subform container: このセレクタを渡すと、コマンドはサブフォームコンテナにバインドされた変数へのポインタを返します。残り2つのオプション引数は渡されても無視されます。つまりこのセレクタは、コンテナオブジェクトにバインドされた変数にアクセスするために、サブフォームとして使用されるフォームのコンテキストでのみ利用できます。
  • Object named: このセレクタを渡す場合、2番目のobjectName引数も渡さなければなりません。この場合、コマンドはこの引数に渡された名前を持つオブジェクトに割り当てられた変数へのポインタを返します。
    : objectName がサブフォームに対応し、"一覧サブフォーム"オプションがチェックされていると、コマンドはソーステーブルが指定されていればサブフォームのテーブルへのポインタを返します。そうでなければNilを返します。

注: このコマンドがリストボックスのコンテキストにおいて使用された時、Object current あるいは Object with focus セレクターを用いたOBJECT Get pointer コマンドは、コンテキストに応じてリストボックス、カラム、ヘッダーへのポインターを返します。詳細な情報については、リストボックスオブジェクトの管理 のページを参照してください。

オプションのsubformName引数を使用してカレントのコンテキスト (すなわち親フォーム) に属さないobjectNameオブジェクトへのポインタを取得できます。この引数を使用可能にするには、Object named セレクタを使用しなければなりません。
subformName引数が渡されると、OBJECT Get pointerコマンドはまずカレントフォーム内でsubformNameという名称のサブフォームを探し、そしてその中でobjectNameという名称のオブジェクトを探します。このオブジェクトが見つかると、このオブジェクトの変数へのポインタを返します。

例題

同じ親フォーム上でサブフォームとして2回使用される"SF"フォームがあります。サブフォームオブジェクトにはそれぞれ"SF1"と"SF2"という名前が与えられます。"SF"フォームにはCurrentValueという名称のオブジェクトがあります。親フォームのフォームメソッドの"On Load"フォームイベントで、SF1のCurrentValueオブジェクトを"January"に、SF2のそれを"February"に初期化します:

 var $Ptr : Pointer
 $Ptr:=OBJECT Get pointer(Object named;"CurrentValue";"SF1")
 $Ptr->:="January"
 $Ptr:=OBJECT Get pointer(Object named;"CurrentValue";"SF2")
 $Ptr->:="February"

参照

Focus object
Form Objects (Access)
OBJECT Get name
OBJECT Get subform container value
Self
オブジェクト(フォーム)