4D v14.3

汎用コマンドとマルチスタイルエリアの関係性

ホーム

 
4D v14.3
汎用コマンドとマルチスタイルエリアの関係性

汎用コマンドとマルチスタイルエリアの関係性  


 

プログラムでテキストオブジェクトを操作するために使用することのできるコマンドは、テキストに統合されたスタイルタグを無視します。以下のコマンドが関連します:

文字列を操作するコマンドとともにこれらのコマンドを使用する際、新しいコマンドST Get plain textを使用してフォーマット文字をフィルターしなければならないことに留意してください:

 HIGHLIGHT TEXT([Products]Notes;1;Length(ST Get plain text([Products]Notes))+1)

  • オブジェクト(フォーム) テーマ
    オブジェクトのスタイルを変更するために使用するコマンド (例えばOBJECT SET FONT) は選択された文字列ではなく、指定されたオブジェクト全体を対象とします。 コマンドが実行されたときオブジェクトにフォーカスがない場合、変更はオブジェクト ( テキストエリア ) とそれに割り当てられた変数に同時に適用されます。オブジェクトにフォーカスがある場合、変更はそのオブ ジェクトに適用され、割り当てられた変数には適用されません。この場合変更は変数に対してオブジェクトがフォーカスを失ったときにのみ適用されます。テキストエリアに対するプログラムを行う際はこの原則を忘れないでください。

"デフォルトスタイルタグを格納"がそのオブジェクトに対して選択されている場合、これらのコマンドを使用すると、オブジェクトに保存されているタグが更新されます。

4D v14 以降、 OBJECT SET RGB COLORSOBJECT SET FONT STYLE といった汎用コマンドとマルチスタイルエリアとの関係性が新しくなりました。

以前のバージョンの4Dでは、これらのコマンドのどれかを実行すると、エリア内に挿入されたカスタムのスタイルタグを全て変更してしまいました。v14からは、デフォルトのプロパティ(とデフォルトのタグで保存されたプロパティ)のみが変更されるようになりました。カスタムのスタイルタグはそのままの状態を維持します。

例えば、以下の様なマルチスタイルエリアにデフォルトのタグが保存されていた場合を考えます。

このエリアのプレーンテキストは以下のようになります:

<span style="text-align:left;font-family:'Segoe UI';font-size:9pt;color:#009900">This is the word <span style="color:#D81E05">red</span></span>

以下のコードを実行した場合:

 OBJECT SET COLOR(*;"myArea";-(Blue+(256*Yellow)))

4D v14 では、赤文字の部分はそのまま赤文字として残ります。

4D v14以前のバージョン
<span style="text-align:left;font-family:'Segoe UI';font-size:9pt;color:#0000FF">This is the word <span style="color:#D81E05">red</span></span>
<span style="font-family:'Segoe UI';font-size:9pt;text-align:left;font-weight:normal;font-style:normal;text-decoration:none;color:#0000FF;"><span style="background-color:#FFFFFF">This is the word red</span></span>

これが適用される汎用コマンドは、以下の5つです:

OBJECT SET RGB COLORS
OBJECT SET COLOR
OBJECT SET FONT
OBJECT SET FONT STYLE
OBJECT SET FONT SIZE

マルチスタイルエリアにおいては、汎用コマンドはデフォルトのスタイルを設定するためだけに使用されるべきです。データベースの実行中にスタイルを管理するためには、 "" テーマ内のコマンドを使用することが推奨されます。

Get edited text (フォームイベントテーマ ) がリッチテキストエリアで使用されると、コマンドはすべてのスタイルタグを含む現在のエリアのすべてのテキストを返します。

編集された生テキスト (タグなしのテキスト) を取り出すには、ST Get plain textコマンドを使用しなければなりません:

 ST Get plain text(Get edited text)

マルチスタイルオブジェクトに対して行われるクエリや並び替えはオブジェクトに保存されたスタイルタグを考慮に入れます。単語中でスタイルの変更が行われた場合、その単語の検索は失敗します。

有効な検索や並び替えを行うには、ST Get plain textコマン ドを使用します。例えば:

 QUERY BY FORMULA([MyTable];ST Get plain text([MyTable]MyFieldStyle)="very well")

データベースで扱われるテキストがより多くのプラットフォームで互換性があることを保証するために、v14以降、4Dは自動的に行末を標準化し、単一文字('\r' (キャリッジリターン))分のスペースを確保するようにしました。この標準化は、マルチスタイルテキストまたは標準テキストを内包しているフォームオブジェクト(変数またはフィールド)まで適用されます。ネイティブでない行末、または複数の文字の組み合わせ ('\r\n' 等) は単一の文字'\r' として認識されます。

XML 標準(マルチスタイルテキストフォーマット)と適合するため、マルチスタイルテキストコマンドも、オブジェクトに関連付けられていないテキスト変数の行末を標準化することに注意して下さい。

この原理により、マルチスタイルテキストコマンドや、HIGHLIGHT TEXTのようなコマンドをマルチプラットフォームのコンテキストで簡単に使用できるようになります。しかしながら、異なるソースからのテキストを扱う処理をする場合には、このことを考慮に入れなければなりません。

 
プロパティ 

プロダクト: 4D
テーマ: Styled Text

 
参照 

OBJECT SET COLOR
OBJECT SET FONT
OBJECT SET FONT SIZE
OBJECT SET FONT STYLE
OBJECT SET RGB COLORS

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)