オブジェクト

Q1
ユーザ定義クラスを配列形式で利用したい

A1
[解決方法]
ユーザ定義クラスをArrayオブジェクトに格納してご利用頂く方法があります。
Arrayオブジェクトを利用すると、配列で定義したオブジェクトと同様に添え字によって
要素にアクセスし、プロパティの変更やメソッドの実行を行う事ができます。

以下にImageButtonクラスから派生したユーザ定義クラスを、Arrayオブジェクトへ格納する
サンプルソースを紹介します。

[サンプルコード]
<Obj_008.crs>
import "Package1.crs";

Form Obj_008 {
 X = 0;
 Y = 0;
 Width = 400;
 Height = 300;
 
 /* 派生クラスのオブジェクトを格納するArrayオブジェクト定義 */
 Array arr;
 
 if ( !$DESIGNTIME ) {
   /* 派生クラス(ボタン)のオブジェクトを生成し、 */
   /* Arrayオブジェクトへ格納する */
   arr[0] = BlueButton BlueButton1;
   arr[1] = BlueButton BlueButton2;
   arr[2] = BlueButton BlueButton3;
   
  for ( var i = 0 ; i < 3 ; i++ ){ 
   if (i == 0){
    /* 最初のボタンの位置 */
    arr[i].x = 50;
    arr[i].y = 20;
   }else{
    /* 2つ目以降のボタンの位置 */
    arr[i].x = 50;
    arr[i].y = arr[i-1].y + 30;
   }
  }
 }
 
 Button Button1 {
  X = 200;
  Y = 20;
  Width = 164;
  Height = 60;
  Title = "上から2番目のプロパティを\n書き換える";
  
  Function OnTouch( e ) {
   ^.arr[1].BgColor = $FF3333;
   ^.arr[1].Title = "RedButton";
  }
 }

<Package1.crs>
package Package1{
 class BlueButton extends ImageButton {
  Width = 120;
  Height = 30;  
  BgColor = $9999FF;
  FgColor = $WHITE;
  FontFace = $BOLD;
  Title = "BlueButton";
 }
}

ユーザ定義クラス(スクリプトにより定義されたクラス)を利用する場合、
考慮しなければならない制約があります。
詳細は以下オンラインマニュアルをご覧ください。

[ 参考 ]
Biz/Browser CRSマニュアル > CRSプログラム > クラス
  スクリプトにより定義されたクラスの制約

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