プログレスバーNo.06949
ダヴィンチ さん 03/07/01 12:40
 
こんにちは、ダヴィンチです。

マクロ処理中にプログレスバーを表示したいです。
または非同期のダイアログボックスでもいいですが。

例えば、選択されたメールの情報を単にマクロの配列変数に
バッファリングしている時は画面にはなんの変化もありません。
このような時に動作中かどうかを明示的に示したいのですが・・・

今の所しっくりするいい方法が見つかりません。

今までこのような事を試しました。

1)自動的に閉じるダイアログボックス
   一次的にはいいですが、同期表示なので、
   マクロの処理中に表示する事はできません。

2)Shownotifyによる非同期表示
   表示した時に[OK]ボタンが押されると、
   マクロの自動起動が動作します。
   どうもうまく表示してくれません。
   「ダイアログ表示中なので処理できません」という
   エラーメッセージが表示されてしまいます。原因はわかりません。
   messageやdisabledrawなどと関係がありますか?

   でもShownotifyは使いたくないです。
   [OK]ボタンでマクロの自動起動は私にとっては、
   不要の処理ですから。

出来れば、以下のようなプログレスバーをマクロから使用できるようには
できないでしょうか?

プログレスバー仕様:
・ゲージの分割数設定
・タイトルメッセージの設定
・プログレスバーの表示・・・マクロ処理とは非同期
・ゲージの更新
・プログレスバーの消去

これ以外の解決方法をご存知の賢者がいらっしゃれば
是非ご教示下さい。

どうぞ宜しくお願い致します。

[ ]
RE:06949 プログレスバーNo.06950
たけのこ さん 03/07/01 12:54
 
たけのこです。

タイトルバーを利用するとか。

title "■";
call sleep 1;
title "■■";
call sleep 1;
title "■■■";
call sleep 1;
title "■■■■";
call sleep 1;
title "■■■■■";
call sleep 1;
endmacro;

sleep:
##waitfor = tickcount + ##1 * 1000;
while(##waitfor > tickcount){}
return;


(^^)/”

[ ]
RE:06949 プログレスバーNo.06951
きいろいまふらあ さん 03/07/01 13:08
 
>これ以外の解決方法をご存知の賢者がいらっしゃれば
>是非ご教示下さい。

ご要望のものそのままではないですけど、進捗状況を表示させたい場合、マクロ
の title コマンドを使うことがしばしばあります(私は)。

#i=100;
while(#i > 0){
title str(#i);
#i = #i -1;
}
endmacro;

サンプルにも何にもなってませんが。(^^;
ループ処理の中にtitleを入れてやればそれなりの情報提供力はあるかと。

[ ]
RE:06951 プログレスバーNo.06952
ダヴィンチ さん 03/07/01 15:32
 
こんにちは、ダヴィンチです。

たけのこさん
>タイトルバーを利用するとか。

きいろいまふらあさん
>ご要望のものそのままではないですけど、進捗状況を表示させたい場合、マクロ
>の title コマンドを使うことがしばしばあります(私は)。

迅速なレスありがとうございました。
「title」だったんですね。
秀丸ヘルプには、「秀丸エディタのウィンドウのキャプション・・・」と
書いてあったから鶴亀の場合は、エディタ画面でないとダメかと思い、あきらめてお
りました。
表示したかったのは、鶴亀本体画面ですから。

鶴亀ヘルプの「鶴亀メール内秀丸と普通の秀丸とのマクロ動作の違い」にも
記述がなかったようですし・・・

お蔭様で私のやりたい事が叶いました。
どうもありがとうございました。

[ ]