4D v17WP Get position |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v17
WP Get position
|
WP Get position ( targetObj {; layout} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
targetObj | Object |
![]() |
4D Write Pro ドキュメント、レンジ または 要素の参照 | |||||
layout | 倍長整数 |
![]() |
評価の際に使用される4D Write Pro ドキュメントのレイアウト: 0(デフォルト)=4D Write Pro レイアウト、 1=HTML WYSIWYG | |||||
戻り値 | Object |
![]() |
位置情報 | |||||
WP Get position コマンドは、targetObj 引数で指定したターゲットのカレントの位置を説明するオブジェクトを返します。
targetObj 引数には、以下のものを渡すことができます:
このコマンドは位置の情報を、以下のプロパティを持つオブジェクトとして返します:
プロパティ名 | 型 | 詳細 |
section | 数値 | targetObj 引数と交錯する最初のセクションの番号 |
page | 数値 | targetObj 引数と交錯する最初のページの番号 |
column | 数値 | targetObj 引数と交錯する最初のカラムのインデックス(1-based) |
line | 数値 | targetObj 引数と交錯する最初の行のインデックス(カラム(あるいはカラムがない場合にはページ)に対して相対的 - 1-based) |
position | 数値 | targetObj 引数の最初の文字の、行の中での位置(1-based) |
targetObj 引数が空レンジの場合、WP Get position はレンジの開始位置情報を返します。
targetObj 引数がヘッダーあるいはフッター内のテキストを参照する場合、WP Get position はヘッダー/フッターが最初のセクション/ページ内にて表示されている位置情報を返します。
targetObj 引数が(複数のページに複製可能な)アンカーされた画像を参照する場合、WP Get position は画像が最初のセクション/ページ内にてアンカーされている位置情報を返します。
定数 | 型 | 値 | コメント |
wk 4D Write Pro layout | 倍長整数 | 0 | 標準の4D Write Proレイアウト。いくつかの特定のスタイル属性を含める事ができます。 |
wk html wysiwyg | 倍長整数 | 1 | このレイアウトでは、4D Write Proの高度な属性のうち、全てのブラウザで互換性があるもの以外は除去されます。 |
layout 引数が省略された場合、デフォルトでは4D Write Pro レイアウトが使用されます。
WP Get position では、WP PRINT コマンドと同じビュー設定が使用されます:
targetObj が4D Write Pro フォームエリアに表示されている場合、必ずエリアのビュー設定とコマンドのビュー設定が同じ情報を返すように設定が一致しているようにしてください。また、これらの情報がエリア内で異なっていた場合、4D Write Pro はコマンドを呼び出すたびにレイアウトを計算するためにドキュメントを"クローン"しなければならず、そのため時間がかかる可能性があることに注意してください。パフォーマンス上の理由から、こういった場合にはドキュメントをオフラインでビルドし、ビルドが完成したあとにドキュメントをフォームオブジェクトにコピーすることが推奨されます。
レンジのページ番号を調べたい場合を考えます:
C_OBJECT($range;$rangePosition)
$range:=WP Get selection(WParea) //ユーザーセレクションからレンジを取得
$rangePosition:=WP Get position($range;wk 4D Write Pro layout)
ALERT("First page number in selection is "+String($rangePosition.page))
ドキュメントの最初のページと最後のページにおいて、テキストカラーを青に設定したい場合を考えます:
C_LONGINT($nbPages)
C_OBJECT($body)
C_COLLECTION($_paragraphs)
$nbPages:=WP Get page count([DOC]Sample)
$body:=WP Get body([DOC]Sample)
$_paragraphs:=WP Get elements($body;wk type paragraph)
For each($paragraph;$_paragraphs)
$info:=WP Get position($paragraph)
If($info.page=1)|($info.page=$nbPages) //最初のページと最後のページのテキストカラーは青に
WP SET ATTRIBUTES($paragraph;wk text color;"blue")
Else //他のページはテキストカラーは黒に
WP SET ATTRIBUTES($paragraph;wk text color;"black")
End if
End for each
ドキュメントをビルドする際、段落がページで分割されることを避けたい場合を考えます:
C_OBJECT(WParea;$body)
C_COLLECTION($_paragraphs)
WParea:=WP New
$body:=WP Get body([DOC]Sample)
$_paragraphs:=WP Get elements($body;wk type paragraph)
For each($paragraph;$_paragraphs)
$insert:=WP New($paragraph)
//カレントのレンジとページ番号を記憶
$rangeBefore:=WP Create range(WParea;wk end text;wk end text)
$info:=WP Get position($rangeBefore)
$memoPage:=$info.page
//コンテンツを挿入、レンジには含めない
WP INSERT DOCUMENT($rangeBefore;$insert;wk append;wk exclude from range)
//挿入後の位置をチェック
$rangeAfter:=WP Create range(WParea;wk end text;wk end text)
$info:=WP Get position($rangeAfter)
If($memoPage#$info.page) // ページが変化していた場合、改ページを追加
WP INSERT BREAK($rangeBefore;wk page break;wk replace)
End if
End for each
プロダクト: 4D
テーマ: 4D Write Proランゲージ
番号:
1577
初出: 4D v17
4D Write Proリファレンス ( 4D v17)