FAQ
FAMOS
シーケンス / 関数top
└Tips
ID.
Q. プログレスバーのような、シーケンスの実行状況の進捗を表示したい。
A.
プログレスバー機能は用意されていませんが、カーブウィンドウのバーメーター表示で進捗情報のような表示を行うことは可能です。
例)
Progress = 0 '%' ; 進捗
CwNewWindow("Cv1", "show")
CwSelectWindow("Cv1")
CwAction("reset")
CwPosition(0, 0, 240, 480)
CwNewChannel("append last axis", Progress)
CwDisplaySet("displaymode", 6) ; バーメーター表示
CwSelectByIndex("y-axis", 1)
CwAxisSet("range", 4)
CwAxisSet("min", 0)
CwAxisSet("max", 100)
_loop = 500 ; 繰り返し処理したい回数
for _iii = 1 to _loop step 1
Progress = _iii / _loop * 100 '%' ; 進捗表示を更新
; 処理
end
繰り返し数が大きい場合は下記の様に一定数ごとに表示すると表示の更新による負荷を軽くできます。
例)
_loop = 123456 ; 繰り返し処理したい回数
_nnn = _loop / 100 ; _nnn回(1%)ごとに進捗表示を更新
for _iii = 1 to _loop step 1
if Mod(_iii, _nnn) = 0 ; _nnn回(1%)ごとに
Progress = _iii / _loop * 100 '%' ; 進捗表示を更新
end
; 処理
end
Progress = 100 '%' ; 進捗を更新