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