Dialog

Q2
Dialogの表示を場面に応じて切り替える
 
A2

[解決方法]
構成の似たDialogを使用する場合に、Dialogに配置したオブジェクトの表示・非表示や機能を
切り替えて使う方法を紹介いたします。
こうした方法を使う事でDialogの統合・共通化ができ、管理がしやすくなります。

[サンプルコード]
呼び出し元FormのButtonの押下でフラグを切り替え、そのフラグを参照してDialogの内容を
切り替えています。
3種類のDialogをひとつのDialogで表現できます。

■呼び出し元

Form Form1{
    …
    /*ボタン1を押したとき*/
    Button Button1 {
        …
        Title = "Labelを表示する";
        Function OnTouch( e ) {
            G_data.flag = 1;
            Get("Dialog1.crs");
        }
    }
    /*ボタン2を押したとき*/
    Button Button2 {
        …
        Title = "TextBoxを表示する";
        Function OnTouch( e ) {
            G_data.flag = 2;
            Get("Dialog1.crs");
        }
    }
    /*ボタン3を押したとき*/
    Button Button3 {
        …
        Title = "Buttonを表示する";
        Function OnTouch( e ) {
            G_data.flag = 3;
            Get("Dialog1.crs");
        }
    }
}




 ■Dialog側
 
 Dialog Dialog1 {
     …
     Form Form1 {
         …
         /*オブジェクトの変更*/
         switch(G_data.flag){
             /*G_data.flag= 1 のとき*/
             case 1:
                 Label Label1 {
                     …
                 }break;
             /*G_data.flag= 2 のとき*/
             case 2:
                 TextBox TextBox1 {
                     …
                 }break;
             /*G_data.flag = 3のとき*/
             case 3:
                 Button Button1 {
                     …
                 }break;
         }
         
         /*いつでも表示*/
         Button Button2 {
             …
             Title = "閉じる";
             Function OnTouch(e){
             Dialog1.Delete();
             }
         }
     }
 }

G_data = 1のとき表示するDialog
Dlg_004_1

G_data = 2のとき表示するDialog
Dlg_004_2

G_data.flag = 3のとき表示するDialog
Dlg_004_3

CRSファイル形式のサンプル
  「Dialogの表示を切り替える(Dlg_004.crs)
にて実際の動作をご確認頂けます。

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