Dialog
1
メッセージボックスの文字サイズや文字色を変えたい
1
DisplayObjectクラスのMessageBoxメソッドでは、文字サイズや文字色などを変更することはできません。
そのようなメッセージボックスを表示したい場合、Dialogクラスを利用して疑似的なメッセージボックスを実装する方法があります。
下記サンプルでは、Form画面のボタン押下で2つのメッセージボックス(MessageBoxメソッド、Dialogクラス)を表示します。
メッセージ画面の「OK」「キャンセル」ボタンを押下するとForm画面のラベルにメッセージが設定されます。ラベルに設定される背景色はそれぞれのメッセージボックスで異なります。
Dialogクラスを利用したメッセージボックスでは、ユーザー定義イベントで押下したボタン名を渡し、その値をもとにメッセージ内容を設定します。
【 注意事項 】
DisplayObjectクラスのMessageBoxメソッドとDialogクラスは挙動が異なります。
MessageBoxメソッドは表示されてから後続の処理が停止しますが、Dialogは表示されても後続の処理が停止しません。
Dialog側の処理が終わった後に親Form側の処理を実行するようにしたい場合、Dialogからユーザー定義イベントを呼び出して続きの処理を行う方法でご対応ください。
【 実行イメージ 】
・MessageBoxメソッドのメッセージボックス
・Dialogクラスを利用したメッセージボックス
[ Form1.crs ]
Form Form1 { Width = 397; Height = 260; Button Button1 { X = 17; Y = 28; Width = 168; Height = 64; Title = "メッセージ表示\r\n(MessageBoxメソッド使用)"; Function OnTouch(e) { /* メッセージボックスを表示 */ if (//.MessageBox("どちらかのボタンを押下してください。", "確認", $OKCANCEL) == OkSelected) { ^.Label1.Value = "【MessageBox】OKを押下しました"; ^.Label1.BgColor = $CYAN; }else{ ^.Label1.Value = "【MessageBox】キャンセルを押下しました"; ^.Label1.BgColor = $MAGENTA; } } } Button Button2 { X = 210; Y = 28; Width = 168; Height = 64; Title = "メッセージ表示\r\n(Dialog使用)"; Function OnTouch(e) { /* メッセージボックスに見立てたDialogを表示 */ Form1.Get("Dialog1.crs"); } } Label Label1 { X = 77; Y = 136; Width = 225; Height = 38; Border = $TRUE; BgColor = $FFFFFF; } /* ユーザー定義イベント */ Function OnUserEvent(e) { /* 渡された結果の取得 */ var res = e.kekka; /* 戻り値によって、背景色の設定を変える */ Switch(res){ case "OK": this.Label1.Value = "【Dialog】OKを押下しました"; this.Label1.BgColor = $Yellow; break; case "キャンセル": this.Label1.Value = "【Dialog】キャンセルを押下しました"; this.Label1.BgColor = $GREEN; break; } } }
[ Dialog1.crs ]
Dialog Dialog1 { Title = "確認"; Form Form1 { Width = 385; Height = 185; Label Label1 { X = 6; Y = 32; Width = 366; Height = 58; Value = "どちらかのボタンを押下してください。"; /* フォント設定 */ FgColor = $BLUE; FontSize = 20; FontFace = $BOLD; } Button Button1 { X = 24; Y = 112; Width = 128; Height = 40; Title = "OK"; /* フォント設定 */ FontSize = 20; Function OnTouch(e) { ^.doPostEvent(e.from.title); } } Button Button2 { X = 200; Y = 112; Width = 152; Height = 40; Title = "キャンセル"; /* フォント設定 */ FontSize = 20; Function OnTouch(e) { ^.doPostEvent(e.from.title); } } Function doPostEvent(btnName){ /* ボタン名取得 */ var res = btnName; var ev = new event("UserEvent"){ string kekka; } ev.kekka = res; /* 親画面(Form1)のユーザー定義イベント */ PostEvent(ev); /* ダイアログ画面を削除 */ Dialog1.Delete(); } } }
管理番号:DlgHt_001
Biz-Collections Bizの宝箱 トップへ
Biz/Browser HT・Biz/Browser SmartDevice・Biz/Browser AI TIPS集 トップへ