メインコンテンツまでスキップ
バージョン: 20 R7 BETA

ST GET ATTRIBUTES

ST GET ATTRIBUTES ( {* ;} object ; startSel ; endSel ; attribName ; attribValue {; attribName2 ; attribValue2 ; ... ; attribNameN ; attribValueN} )

引数説明
*演算子指定時: objectはオブジェクト名 (文字)
省略時: objectは変数またはフィールド
objectanyオブジェクト名 (* 指定時) または
テキストフィールドまたは変数 (* 省略時)
startSelIntegerテキスト選択の開始位置
endSelIntegerテキスト選択の終了位置
attribNameInteger取得する属性
attribValueVariable属性の現在の値

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

ST GET ATTRIBUTES コマンドは、objectで指定したフォームオブジェクト中で選択されたテキストのスタイル属性を取得するために使用します。

オプションの * 引数を渡した場合、object引数にはオブジェクト名 (文字列) を渡します。コマンド実行時にオブジェクトにフォーカスがある場合、コマンドは編集中のオブジェクトに関する情報を返します。他方オブジェクトにフォーカスがない場合、コマンドはオブジェクトのデータソース (フィールドや変数) に関する情報を返します。
* 引数を省略した場合、object 引数にはフィールドや変数を指定します。この場合文字列ではなくフィールドまたは変数への参照を渡します。コマンドはこのフィールドや変数に関する情報を返します。

startSelendSel引数を使用して、オブジェクト中でスタイル属性を取得するテキストを選択します。 startSelには選択する最初の文字位置を、endSelには選択する文字の最後の位置に1加えた値を渡します。endSelに0をセットすることで、自動的にテキストの最後を指定(startSelに1をセットすることでテキストの最初を指定)できます。startSelendSelの値が等しい場合や、startSelendSelよりも大きい場合(endSelが0の場合を除く・上記参照)、エラーが返されます。
startSelendSel、エリア中に既に存在するスタイルタグを考慮に入れません。文字数のカウントは (テキストからスタイルタグを取り除いた) 生テキストを基に行います。

4D では選択範囲を自動的に指定するために startSel 引数と endSel 引数に渡せる規定済み定数を用意しています。これらの定数は "Multistyle Text" テーマ内にあります:

定数コメント
ST End highlight倍長整数-1001オブジェクト内のカレントのテキストセレクションの最後の文字を指定します(*)
ST End text倍長整数0オブジェクトに含まれるテキストの最後の文字を指定します。
ST Start highlight倍長整数-1000オブジェクト内のテキストのカレントセレクションの最初の文字をを指定します (*)
ST Start text倍長整数1オブジェクト内に含まれるテキストの最初の文字を指定します。

(*) これらの定数を使用するためには、 object にオブジェクト名を渡す必要があります。フィールドまたは変数への参照を渡した場合、コマンドはオブジェクトの全てのテキストに対して適用されます。

attribName 引数に取得する属性の名前を、attribValue引数には属性値を受け取る変数を渡します。attribName 引数を指定するにはMultistyle Text Attributesテーマの定数の一つを使用しなければなりません。

定数コメント
Attribute background color倍長整数8attValue = (Windowsのみ) 16進値またはHTMLカラー名
Attribute bold style倍長整数1attValue = 0: 選択部からボールド属性を取り除きます
attValue = 1: 選択部にボールド属性を適用します
Attribute font name倍長整数5attValue = フォントファミリー名 (文字)
Attribute italic style倍長整数2attValue = 0: 選択部からイタリック属性を取り除きます
attValue = 1: 選択部にイタリック属性を適用します
Attribute strikethrough style倍長整数3attValue = 0: 選択部から取り消し線属性を取り除きます
attValue = 1: 選択部に取り消し線属性を適用します
Attribute text color倍長整数7attValue = 16進値またはHTMLカラー名
Attribute text size倍長整数6attValue = ポイント数 (数値)
Attribute underline style倍長整数4attValue = 0: 選択部から下線属性を取り除きます
attValue = 1: 選択部に下線属性を適用します

必要なだけ属性/値の組を渡すことができます。

attribName 属性の値が選択された文字列中全体で同じ場合、attribValueにそれが返されます。値が異なる場合やobject がSPANタグを含まない場合、以下の値が返されます:

attribName属性値が一致しない場合やSPANタグが含まれない場合のattValue
Attribute background colorFFFFFFFF
Attribute bold style2
Attribute font name"" (空の文字列)
Attribute italic style2
Attribute strikethrough style2
Attribute text colorFFFFFFFF
Attribute text size-1
Attribute underline style2

例題

フォームに[Table_1]というStyledTextフィールドが表示されています。このオブジェクトはマルチスタイルで"StyledText_t"という名前がついているとします。選択されたテキストと、太字スタイル属性についてのステータスを取得したいという場合、オブジェクト名かフィールド参照のどちらかを使用して処理することができます。

  • オブジェクト名を使用する方法:
 $text:=ST Get text(*;"StyledText_t";ST Start highlight;ST End highlight)
 ST GET ATTRIBUTES(*;"StyledText_t";ST Start highlight;ST End highlight;Attribute bold style;$bold)
  • フィールド名を使用する方法:
 GET HIGHLIGHT([Table_1]StyledText;$Begin_l;$End_l)
 $text:=ST Get text([Table_1]StyledText;$Begin_l;$End_l)
 ST GET ATTRIBUTES([Table_1]StyledText;$Begin_l;$End_l;Attribute bold style;$bold)

システム変数およびセット

このコマンド実行後、エラーがなければOKシステム変数に1が設定されます。そうでなければ0が設定されます。これは特にスタイルタグが正しく評価できなかった場合に発生します (正しくない、あるいは失われたタグ)。

エラーの場合、変数は変更されません。テキストが評価される際に変数にエラーが発生すると、4Dはテキストをプレーンテキストに変換します。結果、"<"、">"、"&"文字はHTML実体参照に変換されます。

参照

ST SET ATTRIBUTES