最近のアクセス:
ControlValueChanging イベント

エンドユーザーがデータを入力中にコードを実行するために、アプリケーションで使用します。このイベントは、継続的にユーザーにフィードバックすることを目的とするものです (UI エフェクトなど)。

構文

Event VarOrAtt.ControlValueChanging(&newVarOrAtt)
      Event_code
EndEvent
入力値の説明:
VarOrAtt:
編集可能なフィールドとしてレイアウト上に置かれる変数または項目属性のコントロールです (「適用範囲」を参照)。このコントロールの値は変更前の値になります。
&newVarOrAtt:
VarOrAtt と同じタイプの変数です。値は次の値で、変更後は VarOrAtt になります。 
Event_code
イベントがトリガーされたときに実行されるコードです (スマートデバイスでイベントをトリガーする順序にあるほかのイベントと同様)。

チャットする場合を考えてみましょう。テキストフィールドが空のときに録音用のボタンを表示するとします。エンドユーザーがそのフィールド上で入力を開始すると、メッセージ送信用のボタンに変化します。ControlValueChanging イベントを次のように追加することで、このような表示を簡単に設定できます。
イメージ:35772.png
まず、チャットパネルを適切に設計します。
イメージ:35773.png
次に、テキストフィールドに関連する次のイベントを記述します。
Event &vMessage.ControlValueChanging(&vMessageNew)
    Composite
        &MessageLen = &vMessageNew.Length()
        SendButton.Visible = &MessageLen > 0
        RecButton.Visible  = &MessageLen = 0    
    EndComposite
Endevent
&vMessage の値をチェックする必要はありません (このコンテキストでは変数ではなくコントロール)。&vMessageNew 変数の値のみをチェックします。
このイベントを使用して解決できるシナリオは多数あります。たとえば、一連のトークンがすべて入力されたらフィールドを自動的に検証 (および、検証に成功したら次のフィールドにフォーカスをあてるなど) するように設定できます。

  • このイベントは、ユーザーがテキストフィールドに入力したときだけでなく、ユーザーがクリップボードからコンテンツを貼り付けたり、選択したテキストを削除したりしたときにも検出します。公開されている例で Length メソッドIsEmpty メソッドを使用した場合も動作は同じです。しかし、開発者が少なくとも 1 文字の違いによる設計をしたい場合には、Length メソッドが有効です。シンプルな使用例は、メッセージを入力するたびに、残りの文字数を更新するためのものです。そのような場合は、次のように、前述のコードに 1 行追加し、その値でアクションを実行します。
    &HowManyLeft = 256 - &MessageLen
  • VarOrAtt はコントロールであるため、ユーザーが編集を終え (そして ControlValueChanged イベントがトリガーされ) るまで、その値にアクセスすることはできません。
  • フィールドの値をプログラムで (コードで) 変更する場合、ControlValueChanging イベントは実行されません (同じ変数を別の User イベントに複数割り当てするなど)。

制限

  • Android では VarOrAtt&newVarOrAtt の値が区別されません。両方とも同じになります。
  • Web では &newVarOrAtt パラメーターが無視されます。

適用範囲

コントロール Attribute コントロール、Variable コントロール
データタイプ   Numeric、Character、VarChar、LongVarChar
インターフェース スマートデバイス、Web

使用可能バージョン

iOS と Android では GeneXus 15 Upgrade 5 以降、Web では GeneXus 15 Upgrade 6 以降でこの機能を使用できます。

参考情報






サブページ
Created: 17/11/16 20:48 by Admin Last update: 21/05/21 02:40 by Admin
カテゴリ
Powered by GXwiki 3.0