API version 1
- ‐

Form

フォームを表示するクラスです。

フォームの下位には別のオブジェクトを配置して管理します。 下位のオブジェクトは自分が所属する親Formオブジェクトの領域を超えて表示されることはなく、親Formオブジェクトの大きさでクリッピングされます。

スケーリング時の注意点

  • 自身は上位のFormオブジェクトのスケーリング値によりスケーリングされます。
  • 下位のオブジェクトは上位のFormオブジェクトのスケーリング値に自身のスケーリング値を乗じた値でスケーリングされます。

ジェスチャ操作について

Biz/Browserでは、FormクラスのuseGestureプロパティおよびGestureイベントを利用して、タッチ操作によるジェスチャをイベントとして取得できます。

捕捉できるジェスチャの種類

Formクラスでは、下記のジェスチャを捕捉することができます。


フリック操作

フリック操作とは、画面上で一本の指を弾くように素早く動かしながら指を離す操作のことを指します。
主に画面の切り替えやフリック入力式のソフトウェアキーボードなどで使用されており、主にフリック方向の情報を用いて処理を行います。
../../../../_images/g_flick.png

スワイプ操作

スワイプ操作とは、画面上に一本の指をおいたまま指を動かす操作を指します。
主に画面のスクロール処理やアイテムの移動操作などで使用されており、指を動かす度に発生するイベントにて処理を行います。
../../../../_images/g_swipe.png

ピンチ操作

ピンチ操作とは、画面上に二本の指を置き、二本の指の間隔を狭めたり広げたりする操作を指します。
指の間隔を狭める操作のことをピンチイン、広げる操作のことをピンチアウトといいます。
主に画面の拡大縮小操作などで使用されており、指を動かす度に発生するイベントにて処理を行います。
../../../../_images/g_pinch.png

上位Formへのジェスチャ操作の転送

useGestureプロパティへフリック操作、スワイプ操作を指定しない場合、ジェスチャは上位Formへ転送されます。
これによりジェスチャを行っているFormより上位に位置するFormをスワイプによりスクロールさせることができます。
useGestureプロパティにてフリックまたはスワイプ操作を補足中の場合、スワイプ操作による上位Formのスクロールは行えません。

ジェスチャ操作の従来のマウスイベントへのマッピング

以下のジェスチャ操作は従来のマウスイベントへマッピングされます。


タップ操作

Clicked、LButtonUpイベントに対応

../../../../_images/g_tap.png

ダブルタップ操作

DoubleClickedイベントに対応

../../../../_images/g_dtap.png

ロングタップ操作

RClicked、RButtonUpイベントに対応

../../../../_images/g_ltap.png

ジェスチャ操作をハンドリングしなかった場合

useGestureプロパティでジェスチャをハンドリングしなかった場合に下記のイベントが発生します。

スワイプ操作

MouseMoveイベント


ピンチ操作

MouseWheelイベント

スケーリング動作について

Biz/Browserは、FormクラスにあるhorizontalScale、verticalScale、fontScaleプロパティを利用して擬似的な拡大縮小(スケーリング)および縦横比の変更を行うことが可能です。

この章ではスケーリング動作における注意点を記載します。

スケーリングの実行原理

horizontalScale、verticalScale、fontScaleプロパティを利用すると各オブジェクトの縦横およびフォントサイズの拡大縮小を行うことができます。 これは配下のオブジェクトのプロパティを直接変化させないため、論理的なサイズで画面設計を行い、適宜ディスプレイサイズにマッチングさせるような実装が可能です。


また、フォントサイズも動的にスケーリングさせることが可能になり、あたかも拡大縮小するように振る舞わせることが可能です。 フォントサイズはオブジェクトのサイズと独立して拡大縮小率を設定できるため、画面の拡大比率よりやや小さめにするなど、細かな調整が可能です。


下記のようなCRSを実行すると、Biz/Browserのウィンドウサイズから各スケーリング倍率を自動的に調整するようになります。

Form frmMain {
    x = 0;
    y = 0;
    width &= //.width;
    height &= //.height;
    horizontalScale &= //.width / 600;
    verticalScale &= //.height / 400;
    fontScale &= //.width / 600;

    Button btnExit {
        x = 50;
        y = 50;
        width = 100;
        height = 60;
    }
    TextBox txtInput {
        x = 200;
        y = 50;
        width = 200;
        height = 50;
    }
}

スケーリング動作の注意点

スケーリング動作はオブジェクトのサイズを動的に変更する機構であり、画像を拡大縮小する訳ではありません。 よってOSの指定値で表示される、ボーダー(枠線)やスクロールバーの幅に関しては拡大縮小に影響されません。 そのため、オブジェクト内の有効な領域は拡大時は広く、縮小時は狭くなります。

../../../../_images/sc_1.gif ../../../../_images/left.gif ../../../../_images/sc_2.gif ../../../../_images/right.gif ../../../../_images/sc_3.gif

有効領域のスケーリングの正確さを優先しオブジェクトのサイズを実際の倍率とは異なる値に自動的に補正するクラスもあります。 詳しくは各クラスの説明をご参照ください。

また座標系は整数値のため、小数を含んだ倍率を指定した場合、1ピクセル単位で切り捨て(切り上げ)誤差が発生することがあります。

FontScaleに関しては倍率をポイント単位で丸めます。よって座標のスケーリングよりも変化量は大きくなります。

スケーリング動作を用いて画面設計を行う場合、表示エリアに余裕を持った設計を行うようにしてください。