4D v16.3

Get edited text

ホーム

 
4D v16.3
Get edited text

Get edited text 


 

Get edited text -> 戻り値 
引数   説明
戻り値  テキスト in 編集中のテキスト

説明   

Get edited textコマンドは、主にOn After Keystrokeフォームイベントで入力中のテキストを取得するために使用します。またOn Before Keystrokeフォームイベントと共に使用することもできます。これらのフォームイベントについてのより詳細な情報はForm eventの説明を参照してください。

このコマンドとOn Before Keystroke または On After Keystroke フォームイベントの組み合わせは、以下の用に動作します:

  • キーボード上で文字がタイプされると、On Before Keystroke イベントが生成されます。この場合、Get edited text ファンクションは最後のキーストロークが起きる前のエリアの中身を返します。例えば、エリアに“PA” が含まれていて、ユーザーが“R”をタイプした場合、Get edited text は"PA"をOn Before Keystroke イベントに返します。初めにエリアが空だった場合、Get edited text は空の文字列を返します。
  • 次に、On After Keystroke フォームイベントが生成されます。この場合、Get edited text コマンドはキーボードで入力された最後の文字を含めたエリアの中身を返します。例えば、エリアに“PA” が含まれていてユーザーが"R"をタイプした場合、Get edited text は“PAR” を On After Keystroke イベントに返します。

これら二つのイベントは、関連するオブジェクトメソッド内でのみ生成されます。

フォームオブジェクト内のテキスト入力以外のコンテキストで使用された場合、このファンクションは空の文字列を返します。

以下のメソッドは、入力される文字を自動で大文字に変換します:

 If(Form event=On After Keystroke)
    [Trips]Agencies:=Uppercase(Get edited text)
 End if

以下はテキストフィールドへの文字入力をオンザフライで処理する例です。これは入力中の文のすべての単語を、"Words"という他のテキストフィールドに置くというアイデアに基づきます。これを実行するには、フィールドのオブジェクトメソッド内に下記のコードを記述します:

 If(Form event=On After Keystroke)
    $RealTimeEntry:=Get edited text
    PLATFORM PROPERTIES($platform)
    If($platform#3) ` Mac OS
       Repeat
          $DecomposedSentence:=Replace string($RealTimeEntry;Char(32);Char(13))
       Until(Position(" ";$DecomposedSentence)=0)
    Else ` Windows
       Repeat
          $DecomposedSentence:=Replace string($RealTimeEntry;Char(32);Char(13)+Char(10))
       Until(Position(" ";$DecomposedSentence)=0)
    End if
    []Words:=$DecomposedSentence
 End if

Note: この例題は、単語がスペース(Char(32))によって区切られていると仮定しているため、完全なものではありません。完全な解決法としては、すべての単語を抽出するように他のフィルタを付加する必要があります(カンマ、セミコロン、アポストロフィー等の区切り)。



参照 

Form event

 
プロパティ 

プロダクト: 4D
テーマ: 入力制御
番号: 655

 
履歴 

初出: 4D v6.5

 
ARTICLE USAGE

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