エンドユーザーがデータを入力中にコードを実行するために、アプリケーションで使用します。このイベントは、継続的にユーザーにフィードバックすることを目的とするものです (UI エフェクトなど)。
Event VarOrAtt.ControlValueChanging(&newVarOrAtt)
Event_code
EndEvent
入力値の説明:
VarOrAtt:
編集可能なフィールドとしてレイアウト上に置かれる変数または項目属性のコントロールです (「適用範囲」を参照)。このコントロールの値は変更前の値になります。
&newVarOrAtt:
VarOrAtt と同じタイプの変数です。値は次の値で、変更後は VarOrAtt になります。
Event_code
イベントがトリガーされたときに実行されるコードです (スマートデバイスでイベントをトリガーする順序にあるほかのイベントと同様)。
チャットする場合を考えてみましょう。テキストフィールドが空のときに録音用のボタンを表示するとします。エンドユーザーがそのフィールド上で入力を開始すると、メッセージ送信用のボタンに変化します。ControlValueChanging イベントを次のように追加することで、このような表示を簡単に設定できます。
まず、チャットパネルを適切に設計します。
次に、テキストフィールドに関連する次のイベントを記述します。
Event &vMessage.ControlValueChanging(&vMessageNew)
Composite
&MessageLen = &vMessageNew.Length()
SendButton.Visible = &MessageLen > 0
RecButton.Visible = &MessageLen = 0
EndComposite
Endevent
&vMessage の値をチェックする必要はありません (このコンテキストでは変数ではなくコントロール)。&vMessageNew 変数の値のみをチェックします。
このイベントを使用して解決できるシナリオは多数あります。たとえば、一連のトークンがすべて入力されたらフィールドを自動的に検証 (および、検証に成功したら次のフィールドにフォーカスをあてるなど) するように設定できます。
- Android では VarOrAtt と &newVarOrAtt の値が区別されません。両方とも同じになります。
- Web では &newVarOrAtt パラメーターが無視されます。
コントロール |
Attribute コントロール、Variable コントロール |
データタイプ |
Numeric、Character、VarChar、LongVarChar |
インターフェース |
スマートデバイス、Web |
iOS と Android では GeneXus 15 Upgrade 5 以降、Web では GeneXus 15 Upgrade 6 以降でこの機能を使用できます。
|