Button

Q1
フォーカスに当たっているボタンのTouchイベントを実行したい
[内容]
指定したキーでTouchイベントを実行することができるか

A1
ButtonオブジェクトのAltkeyプロパティでは、指定したキーを押下することにより
該当するButtonオブジェクトのTouchイベントを実行することが可能です。
ただし、下記のように複数のAltkeyプロパティ設定がある場合は
一つのみ有効となります。

<間違った記述例>
Button Button1 {
  Altkey = $F09;
  Function OnTouch( e ) {
      /* メッセージを表示する */
      //.MessageBox("Button1を押下しました");
  }
}
Button Button2 {
  Altkey = $F09;
  Function OnTouch( e ) {
      /* メッセージを表示する */
      //.MessageBox("Button2を押下しました");
  }
}
Button Button3 {
  Altkey = $F09;
  Function OnTouch( e ) {
      /* メッセージを表示する */
      //.MessageBox("Button3を押下しました");
  }
}
  ※上記の場合、F9ボタン押下時はButton1のTouchイベントが常に発生します。

複数ボタンのうち、フォーカスが当たっているButtonオブジェクトのTouchイベントを
実行するには、RootクラスのGetFocusメソッドを利用します。
GetFocusメソッドでは、フォーカスの当たっているButtonオブジェクトを取得することが
可能です。

[サンプルイメージ]
Button1にフォーカスをセットした状態

F9ボタン押下時

[サンプルコード]
Function OnkeyDown(e){
    /* フォーカスの当たっているボタン名を取得 */
    var btnName = //.GetFocus().Name;  ・・・@
    
    /* F9キーを押下後、フォーカスが当たっている
       ボタンのTouchイベントを実行 */
    if(e.key == "F9"){
       switch(btnName){  ・・・A
         case "Button1":
           this.Button1.OnTouch();
           break;
         case "Button2":
           this.Button2.OnTouch();
           break;
         case "Button3":
           this.Button3.OnTouch();
           break;
         case "Button4":
           this.Button4.OnTouch();
           break;
         case "Button5":
           this.Button5.OnTouch();
           break;
         case "Button6":
           this.Button6.OnTouch();
           break;
       }
    }
}

  @GetFocusメソッドを利用し、現在フォーカスが当たっているButtonオブジェクトの
    名称を取得します。

  A@で取得したオブジェクトの名称を判断し、該当するButtonオブジェクトの
    Touchイベントを実行します。

実際の挙動については、CRSファイル形式のサンプル
   「フォーカスに当たっているボタンのTouchイベントを実行したい(Btn50_001.zip)」
をご確認ください。

管理番号:Btn50_001
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ