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を返します。
オプションのsubformName引数を使用してカレントのコンテキスト (すなわち親フォーム) に属さないobjectNameオブジェクトへのポインタを取得できます。この引数を使用可能にするには、Object named セレクタを使用しなければなりません。
subformName引数が渡されると、OBJECT Get pointerコマンドはまずカレントフォーム内でsubformNameという名称のサブフォームを探し、そしてその中でobjectNameという名称のオブジェクトを探します。このオブジェクトが見つかると、このオブジェクトの変数へのポインタを返します。
同じ親フォーム上でサブフォームとして2回使用される"SF"フォームがあります。サブフォームオブジェクトにはそれぞれ"SF1"と"SF2"という名前が与えられます。"SF"フォームにはCurrentValueという名称のオブジェクトがあります。親フォームのフォームメソッドの"On Load"フォームイベントで、SF1のCurrentValueオブジェクトを"January"に、SF2のそれを"February"に初期化します:
C_POINTER($Ptr)
$Ptr:=OBJECT Get pointer(Object named;"CurrentValue";"SF1")
$Ptr->:="January"
$Ptr:=OBJECT Get pointer(Object named;"CurrentValue";"SF2")
$Ptr->:="February"