4D v14.3OBJECT DUPLICATE |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v14.3
OBJECT DUPLICATE
|
OBJECT DUPLICATE ( {* ;} object {; newName {; newVar {; boundTo {; moveH {; moveV {; resizeH {; resizeV}}}}}}} {; *} ) | ||||||||
引数 | 型 | 説明 | ||||||
* | 演算子 |
![]() |
指定時: objectはオブジェクト名 (文字列)、省略時: objectは変数またはフィールド | |||||
object | フォームオブジェクト |
![]() |
オブジェクト名 (*指定時)、または変数やフィールド (*省略時) | |||||
newName | テキスト |
![]() |
新しいオブジェクトの名前 | |||||
newVar | ポインター |
![]() |
新しいオブジェクトの変数へのポインター | |||||
boundTo | テキスト |
![]() |
直前の入力順の入力可能オブジェクトまたはラジオボタングループ | |||||
moveH | 倍長整数 |
![]() |
新しいオブジェクトの横シフト (>0 = 右方向, <0 = 左方向) | |||||
moveV | 倍長整数 |
![]() |
新しいオブジェクトの縦シフト (>0 = 下方向, <0 = 上方向) | |||||
resizeH | 倍長整数 |
![]() |
オブジェクトの横リサイズ | |||||
resizeV | 倍長整数 |
![]() |
新しいオブジェクトの縦リサイズ | |||||
* | 演算子 |
![]() |
指定時= 絶対座標, 省略時= 相対座標 | |||||
OBJECT DUPLICATEコマンドを使用して、object引数で指定したオブジェクトのコピーを作成できます。コピーはアプリケーションモードで実行されているフォームのコンテキストで生成されます。デザインモードのソースフォームは変更されません。
デフォルトで、割り当てられているオブジェクトメソッドを含む、ソースオブジェクトに対しプロパティリストで設定されているすべてのオプションがコピーに適用されます ( サイズ、リサイズオプション、カラー等)。
しかし以下の例外について留意してください:
オプションの * 引数を渡すと、object 引数はオブジェクト名 (文字) です。この引数を渡さないと、object はフィールドまたは変数です。この場合、文字ではなくフィールドまたは変数への参照 (フィールドまたは変数オブジェクトのみ) を渡します。
フィールドや変数参照を渡した場合で、フォーム中に同じ参照を使用するオブジェクトが複数ある場合、最初に見つかったオカレンスが使用されます。このような曖昧さを避けるために、ユニークであるオブジェクト名の使用をお勧めします。
newName 引数にはオブジェクトのコピーに割り当てる名前を渡します。この名前はオブジェクト名の命名規則に沿い、フォーム中でユニークでなければなりません。有効でない、あるいは既に使用されている名前を渡すと、コマンドはなにも行わず、OK 変数に0 が設定されます。
この引数を省略するか空の文字列を渡すと、ソースオブジェクト名をインクリメントすることで、新しい名前が自動生成されます。例えば:
ソース名 | コピー名 |
Button | Button1 |
Button20 | Button21 |
Button21 | Button23 (Button22が既に存在すれば) |
newVar には新しいオブジェクトに割り当てられる変数へのポインタを渡します。ルールとして、ソースオブジェクトと同じ型の変数をポイントしなければなりません。しかし特定の種類の" 型変換" が可能です。汎用的なコードを書けるようにするために、コマンドは自動処理を提供します:
変数の型がオブジェクトと互換でない場合、コマンドはなにも行わず、OK変数に0が設定されます。この引数を省略すると、4D が変数を動的に作成します (の"ダイナミック変数" 参照)。スタティックオブジェクト (線、四角、スタティックピクチャ等) を複製するとき、この引数は無視されます。他の引数を使用できるようにするには Nil ポインタ (->[]) を渡します。
boundTo 引数は2 つのケースで使用します:
この引数を省略するか空の文字列を渡すと、新しいオブジェクトはフォームページ中の最後の入力可能オブジェクトとなります。ラジオボタンの場合、オブジェクトはソースボタンのグループに含められます。
新しいオブジェクトはmoveH、moveV、resizeH そしてresizeV 引数を使用して移動およびリサイズできます。OBJECT MOVE コマンドのように、移動やリサイズの方向はmoveH やmoveV 引数に渡された値の符号で指定されます:
デフォルトでmoveH、moveV、resizeH そしてresizeV の値は、以前の場所からの相対位置で、オブジェクトの座標を変更します。この引数で絶対座標を指定したい場合、最後のオプションの * 引数を渡します。 これらの引数を省略すると、新しいオブジェクトはソースオブジェクトの上に重ねて配置されます。
このコマンドはフォームを表示するコンテキストで使用されなければなりません。コマンドは通常On Load フォームイベントやユーザアクション (On Clicked イベント) で実行されます。
Note: On Load フォームイベントがソースオブジェクトに割り当てられているとき、コマンド実行時に複製されたオブジェクトでも生成されます。これにより例えば値の初期化などが行えます。
技術的および論理的な理由により、OBJECT DUPLICATEは特定のイベント内では呼び出すことができません。特に:
サポートされていないコンテキストでコマンドが呼び出されると、オブジェクトは複製されずに、OK変数に0が設定されます。コマンドが印刷のコンテキストで呼び出されるとエラー-10601が生成されます。
コマンドが正しく実行されるとOKシステム変数に1が、そうでなければ0が設定されます。
既存の"OKButton" オブジェクトの上に新しいボタン"CancelButton" を作成し、vCancel 変数を割り当てます:
OBJECT DUPLICATE(*;"OKButton";"CancelButton";vCancel)
既存のラジオボタン"bRadio5" を基に新しいラジオボタン"bRadio6" を作成します。このボタンには変数<>r6 が割り当てられ、"bRadio5" ボタンのと同じグループに入ります。位置は20 ピクセル下に作成されます。:
OBJECT DUPLICATE(*;"bRadio5";"bRadio6";<>r6;"bRadio5";0;20)
プロダクト: 4D
テーマ: オブジェクト(フォーム)
番号:
1111
初出: 4D v12
Form Objects (Access)
OBJECT Get pointer
OBJECT MOVE
ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)