画面表示 - プログレスバー
プログレスバーの動きと処理を同期させたい
ProgressBarクラスやProgressPopupクラスでは、プログレスバーが1ステップ進む毎に
Timerイベントが発生する為、プログラム内にTimerイベントハンドラを記述しておくことで、
1ステップ毎のイベントを捕捉することができます。
また、補足されたイベントにステップ数に応じた処理を記述することで、
プログレスバーの動きと処理を同期することができます。
【実行結果@】
【実行結果A】
【実行結果B】
【実行結果C】
######################################## # プログレスバー # プログレスバーの動きと処理を同期させたい ######################################## Form ScD0213 { X = 0; Y = 0; Width = 700; Height = 500; #画面タイトル Label lb_formTitle { X = 10; Y = 10; Width = 680; Height = 40; Value = "プログレスバー"; Font = new Font( "メイリオ", 20 ); } ####################################### # プログレスバー ####################################### ProgressBar ProgressBar_2 { x = 21; y = 233; width = 531; height = 30; Value = 0; maximum = 100; TabIndex = 2; } #プログレスバー説明 Label label2 { x = 7; y = 80; width = 530; height = 25; Value = "プログレスバーの動きと処理を同期させたい"; } #進捗表示(%表示) Label label3 { x = 315; y = 275; width = 50; height = 25; horizontalAlign = ALIGN_RIGHT; verticalAlign = ALIGN_CENTER; BgColor = COLOR.WHITE; Border = New Border( Border.SOLID, 2, COLOR.BLACK ); Value = "%"; TabIndex = 19; } #表示ボタン Button btn_pb2start { x = 561; y = 233; width = 50; height = 30; Title = "表示"; TabIndex = 20; Function OnTouch( e ) { #プログレスバーの進行を表示する ^.ProgressBar_2.autoStep(10,TRUE); } } #プログレスバー初期化ボタン Button btn_pb2clear { x = 612; y = 233; width = 50; height = 30; Title = "初期化"; TabIndex = 21; Function OnTouch( e ) { #プログレスバーを初期状態へ戻す ^.ProgressBar_2.value = 0; ^.label3.value = "%"; } } #補足コメント Label label5 { x = 310; y = 443; width = 376; height = 50; FgColor = COLOR.RED; Value = "※表示ボタンを押下するとプログレスバーが表示されます。\n 初期化ボタンを押下することで、プログレスバーを初期状態に戻します。"; } #プログレスバー枠 GroupBox groupbox2 { x = 3; y = 74; width = 682; height = 350; tabIndex = 100; TabIndex = 600; Label label1 { x = 219; y = 199; width = 93; height = 25; BgColor = COLOR.WHITE; Border = New Border( Border.SOLID, 2, COLOR.BLACK ); horizontalAlign = ALIGN_CENTER; verticalAlign = ALIGN_CENTER; Value = "処理進捗状況:"; } } ######################################################### # プログレスオブジェクトから呼び出されるタイマーイベント ######################################################### Function OnTimer( e ) { #プログレスバーから発生したイベントの場合 if ( e.from.name == "ProgressBar_2" ) { #デバッグ確認用メッセージ print( "[呼出元オブジェクト名:" + str( e.from.name ) + "]" + "[オブジェクトValue値:" + str( e.from.value ) + "]" ); #進捗状況の更新 label3.Value = str( e.from.Value ) + "%"; #プログレスバーの進捗状況が50%に達した場合の一時停止処理 if ( e.from.value == 50 ) { #進行処理を中断する ProgressBar_2.autoStepOff(); #処理続行確認処理 var res = //.MessageBox( "進行状況が50%になりました。\n継続して処理を行ってよろしいですか。", "確認メッセージ", MB_ICON_INFORMATION + MB_OKCANCEL ); #メッセージボックスを「OK」した場合 if ( res == MB_OK_SELECTED ) { #プログレスバーの処理を再開する ProgressBar_2.autostep( 5,TRUE ); } #メッセージボックスを「CANCEL」した場合 else { #プログレスバーの処理を中断する ProgressBar_2.value = 0; #進捗状況をクリアする label3.value = "%"; } } } } }
Biz-Collections Bizの宝箱 トップへ
Biz/Browser DT・Biz/Designer DT TIPS集 トップへ