Form

Q
端末の画面サイズに合わせてスケーリングしたい 

A
FormクラスのHorizontalScale、VerticalScale、FontScaleプロパティに、
倍率を設定し、オブジェクトをスケーリングできます。

Biz/Browser AIでは、画面全体からステータスバー、メニューバー等を引いた
描画可能な部分のサイズを、RootクラスのHeightプロパティ、Widthプロパティで
取得できます。
この値を基準にRoot直下のFormのサイズを拡大し、元々のサイズと比較して、
各オブジェクトを画面サイズに合わせるための倍率を求めます。

[サンプルコード]
Form Form1 {
   X = 0;
   Y = 0;
   Width = 220;
   Height = 267;
   
   Number w = Width;
   Number h = Height;
   
   /* Biz/Designerのデザインビューでは実行しない
      (エラーとなるため) */
   if ( !$DESIGNTIME ) {
      /* Formを画面描画サイズいっぱいに広げる */
      Width &= //.Width;
      Height &= //.Height;
   }
   
   /* 縦横の倍率を算出 */
   HorizontalScale &= Width/w;
   VerticalScale &= height/h > 0.1 ? height/h : 0.1;
   /* フォントの倍率を算出 */
   FontScale &= VerticalScale > HorizontalScale 
                        ? HorizontalScale : VerticalScale;
   
   …
}

なお、端末上でメニューから表示できる「スケーリング設定」画面から
スケーリングの倍率を設定することもできます。
この時、CRS上でもスケーリングの設定がされていると、倍率は重ねて適用されます。
例えばCRSで1.5、端末の設定画面で2という倍率が設定されていれば、
画面は1.5×2で、元の画面から3倍に拡大されて表示されることになります。

CRSファイル形式のサンプル
  「画面サイズに合わせたスケーリング(FormAi_002.zip)
で実際の動作をご確認いただけます。

管理番号:FormAi_002
 
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ