4D v16.3

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

ホーム

 
4D v16.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")

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

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

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



参照 

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

 
プロパティ 

プロダクト: 4D
テーマ: スタイル付きテキスト

 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)