オブジェクト

Q1
Activeプロパティが「FALSE」状態のオブジェクトに、任意の背景色や文字色を
設定したい

A1
[解決方法]
オブジェクト自体のActiveプロパティを「FALSE」にすると、背景・文字ともに決まった色と
なってしまいます。
しかし、以下2つの方法でActiveプロパティが「FALSE」状態のオブジェクトへ、
任意の背景色や文字色を設定したような表示が可能です。

(1) 各オブジェクトの上位にFormを配置し、FormのActiveプロパティを
「FALSE」に設定します。
  Form配下の各オブジェクトは、Activeプロパティが「TRUE」のまま、入力不可能な
状態で背景及びフォントに任意の色の指定が可能となります。
  [サンプルコード1]
[サンプルソース]
Form Obj_006_01 {
 X = 45;
 Y = 16;
 Width = 300;
 Height = 64;
 PulldownList PulldownList1 {
 ・・・
  PulldownItem PulldownItem1[3]{
   PulldownItem1[0].Title = "プルダウンアイテム1";
   PulldownItem1[1].Title = "プルダウンアイテム2";
   PulldownItem1[2].Title = "プルダウンアイテム3";
  }
 }
 Function OnLostFocus( e ) {
 /* 文字色、背景色を指定し、上位のFormを非活性とします */
  BgColor = $FF9999;
  FgColor = $White;
  Form1.Active = $FALSE;
 }
 Button Button1 {
 ・・・		
  Function OnRClicked( e ) {
   ^.Form1.Active = $TRUE;
   ^.Form1.PulldownList1.BgColor = $STD;
  }
 }	
}
(2) 各オブジェクトの上にFormを被せ、FormのTransparentプロパティを「TRUE」に
設定します。
  DisplayObjectクラスのActiveプロパティを$FALSEに設定したときと同様に、
配置したオブジェクトに対し、ユーザからの操作を不可とします。
  [サンプルコード2]
[サンプルソース]
Form Obj_006_02 {
  /* Formクラスの下に配置されたオブジェクト */
  PulldownList PulldownList1 {
    X = 37;
    Y = 142;
    Width = 226;
    Height = 115;
    VisualStyle = $FALSE;
    
    PulldownItem PulldownItem1[3]{
      PulldownItem1[0].Title = "プルダウンアイテム1";
      PulldownItem1[1].Title = "プルダウンアイテム2";
      PulldownItem1[2].Title = "プルダウンアイテム3";
    }
    
    /* フォーカスを失ったときにFormクラスを
        PulldownListクラスの上に被せる */
    Function OnLostFocus( e ) {
      ^.Form2.Width = 272;
      ^.Form2.Height = 45;
      BgColor = $FFCCCC;
      FgColor = $DGREEN;
    }
    this.Value = 0;
  }
  Form Form1 {
    X = 19;
    Y = 194;
    Width = 0;
    Height = 0;
    Transparent = "$TRUE";
  }
  
  Button Button1 {
    X = 37;
    Y = 342;
    Width = 232;
    Height = 44;
    
    Function OnRClicked( e ) {
      /* 右クリックで操作可に変更 */
      if((^.Form1.Width != 0 && ^.Form1.Height != 0)){
        ^.Form1.Width = 0;
        ^.Form1.Height = 0;
        ^.PulldownList1.BgColor = $STD;
        ^.PulldownList1.FgColor = $STD;
      }
    }
  }
}
  Transparentプロパティは、Biz/Browser V ver5.0.4.0以降の機能となります。
Transparentプロパティには、制約があります。詳細はこちらをご参照ください。

CRSファイル形式のサンプル
 「Activeプロパティが「FALSE」状態のオブジェクトに、任意の背景色や文字色を
  設定したい(Obj_006.zip)

で実際の動作をご確認いただけます。(Biz/Browser XE ver4.3.0.0以降で実行してください)

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