率直に言って、私たちはオブジェクトが大好きです。4D Write Proは オブジェクトをコマンドや関数の入出力として使い、ドキュメント、テキスト、段落などを操作します。このブログ記事では、4D Write Proでオブジェクトを使用する 4つの異なる方法を紹介します。
属性を設定する
簡単な例を使ってみましょう。あなたは、選択したテキストのフォント、サイズ、ウェイトを「Arial」、「Bold」、「16pt」に設定したいのです。
まず、選択したテキストを範囲として取り込みます。
$range:=WP Get selection(WParea)
注意:WP Get selection はテキストを返すのではなく、選択されたテキストに一致する範囲を返します。この範囲は、デバッガで見えるいくつかの属性を持っています。「start”、”end”、”type”、”owner “です。
次に、次のコマンドで属性を定義します。 WP SET ATTRIBUTESコマンドで属性を定義します。
WP SET ATTRIBUTES($range;wk font family; "Arial")
WP SET ATTRIBUTES ($range;wk font size;16)
WP SET ATTRIBUTES (
$range;wk font bold;wk true)
このコードは、定数や、場合によってはスマート定数(3行目のwk true のように)のおかげで、読み書きが簡単です。
代替案1:OB SET
$range がオブジェクトで、wk font xxx が属性である以上、同じことをするために OB SETコマンドで同じことができます。
どうでしょう?これは素晴らしい働きです。以下のコードは、まったく同じことをします。
OB SET($range;wk font family; "Arial")
OB SET ($range;wk font size;16)
OB SET (
$range;wk font bold;wk true)
同じ定数でも唯一の違いは、このコードが4D Write Proのドキュメントに適用されることが明白でなくなったことです。ふむふむ。2番目の選択肢を見てみましょう。
代替案2:オブジェクト表記法
データベースでオブジェクト記法を有効にしているのであれば、できるだけ使いたいと思いますよね?
このコードもうまくいくでしょうか?
$rangefontFamily:="Arial" . :=16 .
$rangefontSize
$rangefontBold:=。wk true
はい、動きます。コンパクトなコードで読みやすく、結果は – もちろん – 全く同じになります。
ちょっとした注意点があります。このように書くと、自動補完はありませんし、定数やsmart constants は大文字と小文字を区別するので、特に注意が必要です(例えば、 fontFamilyは動作しますが、FontFamilyは動作しません)。ですから、このようなコードを書く場合は、十分に注意することをお勧めします 😉
他の選択肢はありますか?はい、あります。
選択肢3:括弧を使ったオブジェクト記法
オブジェクト記法は実に強力です。属性名は、角括弧 [“myAttribute”] の中にあれば、評価することができるのです。ですから、次のように書くと
contact["name"]:="Brown"
と書くのと全く同じ意味になります。
contact.name:="Brown "と書くのと全く同じです。
4D Write Proにとって、これは何を意味するのでしょうか?簡単に言うと、オブジェクト 記法と定数を使うことができるのです。
$range[wk font family]:="Arial"
$range [wk font size]:=16
$range [
wk font bold]:=
となります。wk true
この最終的な方法は、コンパクトで読み書きが簡単、そして定数を使用するものです。
属性を読むには?
属性の読み方も同じです。次のようなコード例が有効です。
WP GET ATTRIBUTES($range;wk font family;$family)
WP GET ATTRIBUTES ($range;wk font size;$size)
WP GET ATTRIBUTES (
$range;wk font bold;$bold)
選択肢1:OB GET
$family:=OB Get($range;wk font family)
$size :=OB Get($range;wk font size)
$bold :=OB Get($range;wk font bold)
代替案2:オブジェクト表記法
$family:=$range.fontFamily
$size :=$range.fontSize
$bold:=$range.fontBold
代替案3: 大括弧付きのオブジェクト表記法
$family:=$range[wk font family]
$size :=$range[wk font size]
$bold :=$range[wk font bold]
。
このように、複数の方法でプログラミングをしても、同じ結果になることがあります。どの方向に進むかは、あなた次第です。