4D v14.3RESOLVE POINTER |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
RESOLVE POINTER
|
RESOLVE POINTER ( pointer ; varName ; tableNum ; fieldNum ) | ||||||||
引数 | 型 | 説明 | ||||||
pointer | ポインター |
![]() |
参照オブジェクトを取得するポインタ | |||||
varName | 文字 |
![]() |
参照された変数の名前または空の文字列 | |||||
tableNum | 倍長整数 |
![]() |
参照されたテーブルまたは配列要素の番号 または 0 あるいは -1 | |||||
fieldNum | 倍長整数 |
![]() |
参照されたフィールドの番号 または 0 | |||||
RESOLVE POINTER コマンドは、pointer式によって参照されるオブジェクトの情報を取得し、引数varName、tableNum、fieldNumに返します。
参照されるオブジェクトの種類によって、RESOLVE POINTERコマンドは、以下のような値を返します:
参照されるオブジェクト | 引数 | ||
varName | tableNum | fieldNum | |
なし (NILポインタ) | "" (空の文字列) | 0 | 0 |
変数 | 変数名 | -1 | 0 |
配列 | 配列名 | -1 | 0 |
配列要素 | 配列名 | 要素番号 | 0 |
テーブル | "" (空の文字列) | テーブル番号 | 0 |
フィールド | "" (空の文字列) | テーブル番号 | フィールド番号 |
Notes:
フォーム内で、v1, v2... v100という名前で入力可能な変数100個を作成します。これを実行するには、以下のような手順を実行します:
a. 入力可能な変数を1つ作成し、vと名付ける。
b. オブジェクトのプロパティを設定する。
c. オブジェクトに以下のメソッドを作成する:
DoSomething(Self) ` DoSomething はデータベースのプロジェクトメソッド
d. この時点で、必要な回数だけ変数を複製することも、フォームエディタの「グリッドで変数作成」機能を使用することもできる。
e. DoSomethingメソッド内で、このメソッドが呼び出される変数のインデックスを知る必要がある場合には、以下のように記述する:
この方法でフォームを作成することによって、100個の変数のためのメソッドを一度書くだけで済むことに注目してください。DoSomething (1), DoSomething (2)...,DoSomething (100)を作成する必要はありません。
デバッグのために、メソッドへの2番目の引数 ($2) がテーブルへのポインタであることを確認する必要があるとします。この場合、メソッドの最初で、以下のように記述します:
` ...
If(<>DebugOn)
RESOLVE POINTER($2;$vsVarName;$vlTableNum;$vlFieldNum)
If(Not(($vlTableNum>0)&($vlFieldNum=0)&($vsVarName="")))
` 警告: ポインタはテーブルへの参照ではない
TRACE
End if
End if
` ...
DRAG AND DROP PROPERTIES コマンドの例を参照.
プロダクト: 4D
テーマ: ランゲージ
番号:
394
初出: 4D v6
DRAG AND DROP PROPERTIES
Field
Get pointer
Is a variable
Nil
Table
ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v11 SQL Release 6)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)