| 4D v13.4Get edited text | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v13.4
 Get edited text 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Get edited text -> 戻り値 | ||||||||
| 引数 | 型 | 説明 | ||||||
| 戻り値 | テキスト |   | 編集中のテキスト | |||||
Get edited textコマンドは、主にOn After Keystrokeフォームイベントで入力中のテキストを取得するために使用します。またOn Before Keystrokeフォームイベントと共に使用することもできます。詳細はForm eventの説明を参照してください。
Note: 4D バージョン6.5で実装された新しいフォームイベントであるOn After Keystrokeに対応して、従来のイベントであるOn KeystrokeはOn Before 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 ifNote: この例題は、単語がスペース(Char(32))によって区切られていると仮定しているため、完全なものではありません。完全な解決法としては、すべての単語を抽出するように他のフィルタを付加する必要があります(カンマ、セミコロン、アポストロフィー等の区切り)。
	プロダクト: 4D
	テーマ: 入力制御
	番号: 
        655
        
        
        
	
	初出: 4D v6.5