プログレスバーRe: JSL には、回転するホイールやバーに似た「ビジー」インジケーターが用意されていますか?
JSL で作成された進行状況インジケーターの例を次に示します。名前空間を使用してコードをカプセル化します。最後の数行はテストです。設定してみてください。仕事量大きいか小さいか。スムーズなパフォーマンスを得るには、progress:set 関数をかなり頻繁に呼び出す必要があります。 progress:init 関数は、パーセンテージを正しく取得するために実行される作業の合計量を知る必要があります。
編集: JSL のコピーを添付しました。どうやらインライン JSL は正しく表示されない可能性があります。

progress = New Namespace(
"progress"
);
progress:init = Function( {workload},
progress:TotalWork = workload;
progress:Current = -1;
progress:tick = Tick Seconds();
progress:Window = New Window( "progress",
H List Box(
Spacer Box( size( 20, 20 ) ),
progress:busy = Busy Light( <<SIZE> 1 / 30,
progress:tick = now;
If( pct != progress:Current,
progress:Current = pct;
progress:left << size( progress:Current, 20 );
progress:right << size( 100 - progress:Current, 20 );
progress:text << settext( Char( pct ) || "%" );
);
progress:busy << advance;
Wait( 0 );
)
);
progress:term = Function( {},
progress:Window << closeWindow
);
/////////////////////////
// test
/////////////////////////
workload = 1e6; // 1e6 is about 5 seconds
progress:init( workload );
For( i = 1, i <= workload, i++,
progress:set( i )
);
progress:term();</SIZE>
Re: プログレスバー良い質問。
あなたが質問しているテストは、時間の無駄となる 1 秒あたり 30 回を超える表示更新を防ぐように設計されています。 実際、そのテストがなければ、この例では表示が 100 万回更新され、実行に非常に長い時間がかかることになります。
この例では、1e6 ファイルがあることを前提としています。 コードの最後の 6 行と同様のループを作成し、直前にファイル処理を行う必要があります。進行状況:セット(i) 。 そして、1e6 をファイルの数に変更します。
Re: プログレスバーこんにちは、クレイジ
プログレスバーについて共有していただきありがとうございます。
処理されたファイルの数をプログレスバーで監視したいと思います。
つまり、私の「仕事量」は「時間」ではなく「数」です。 (フォルダー内に N 個のファイル)
つまり、「progress:tick」とその文を削除する必要がありますか?
If( now - progress:tick > 1 / 30,
progress:tick = now;
アドバイスをいただけますか。
ありがとう。