GUI拡張機能

Q
syncObjectメソッドによるGUIの同期  
A
Biz/Browserでは、GUI(画面)側の表示の変更は、スクリプト側の一連の処理が終了した時点(アイドル状態)で行われます。

そのため、『時間のかかる処理で実行中を知らせるDialogを表示する』や『プログレスバーの動きと処理を同期する』といった機能をTimerイベントやGetFocusイベント、AutoStepメソッドを利用して実装できても、GUI(画面)側の表示を処理と完全に同期する事はできませんでした。

 
【従来のBiz/Browser】
[サンプル]
Button Button1 {
  X = 86;
  Y = 79;
  Width = 79;
  Height = 38;
  Title = "実行";

  Function OnTouch( e ) {
    /* 処理中ダイアログ表示*/
    Get("Dialog1.crs");
    
    /* 時間のかかる処理 
   (ダミーでカウント処理を入れています)*/
    var COUNT = 1000;
    var i;
    for ( i = 0; i < COUNT; i++ ) {
    /* 処理実行 */
    }
    /* 処理中ダイアログ削除 */
    Dialog1.delete();
  }
}
[処理イメージ]


ですが、syncObjectメソッドを利用することによりスクリプトの処理と同期させたGUI(画面)表示や、GUI側の表示を優先させた機能を実装することが可能です。

【Biz/Browser V】
[サンプル]
Button Button1 {
  X = 86;
  Y = 79;
  Width = 79;
  Height = 38;
  Title = "実行";

  Function OnTouch( e ) {
    /* 処理中ダイアログ表示*/
    Get("Dialog1.crs");
    
    /* GUIの実行メソッド */
    syncObject();
        
    /* 時間のかかる処理 
   (ダミーでカウント処理を入れています)*/
    var COUNT = 1000;
    var i;
    for ( i = 0; i < COUNT; i++ ) {
    /* 処理実行 */
    }
    /* 処理中ダイアログ削除 */
    Dialog1.delete();
  }
}
[処理イメージ]


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