JCL_pgs_Open

プログレスバー表示用メソッドのひとつ。JCL_pgs_Showから呼ばれて、別プロセスでフォームを表示する。

使い方
$ProcessNo:=New process(“JCL_pgs_Open”; 0; “JCL_pgs_Open”; $msg)

引数
$1: タイトル行の文字列

//JCL_pgs_Open
//プログレスバー表示プロセス
//$1:メッセージ
//20080605 矢部 新規作成

C_TEXT($1; vP01_Title)
vP01_Title:=$1

//ウィンドウ表示
C_LONGINT($winRef)
$winRef:=Open form window("P01_Bar"; \
Modal dialog box; Horizontally centered; Vertically centered)
DIALOG("P01_Bar")
CLOSE WINDOW

説明
Open form windowを使って「P01_Bar」というフォームを表示している。このフォームをプロジェクトフォームで次のように作成しておく。

「キャンセル」ボタンの名前は「vP01_btnCancel」オブジェクトメソッドは次の通り。

//vP01_btnCancel
//20191105 rename ike wat  
//実装し忘れていた、そのためキャンセルできなかった

<>P01_Cancel:=True

フォームメソッドも必要。次の通り。

P01_frm
//P01_frm
//20111127 wat
//フォームメソッド
//20080605 矢部 新規作成

Case of 
	: (Form event code=On Load)
		
		P01_frmOnLoad
		
	: (Form event code=On Timer)
		
		P01_frmOnTimer
		
End case 
//P01_frmOnLoad
//20111127 wat
//プログレスバーのオンロード

<>P01_Meter:=0  //初期化
<>P01_Msg:=""
<>P01_Count:=""

SET TIMER(1)  //1/2秒
//P01_frmOnTimer
//20111127 wat
//プログレスバーのオンタイマー

If (<>P01_Cancel=True)
	
	CANCEL
	
End if 

フォームメソッドはモジュール化されているため説明は面倒だが、いつものことなのでそのまま掲載した。プログレスバーの仕組みは、ほぼほぼこのJCL_pgs_OpenをNew processで呼び出すことにあるのだが、使うときには見えないようにしている。