ダイアログをキャンセルした場合No.05230
まふまふ さん 06/09/15 15:02
 
こんにちは、お世話になります。

replacedialog で置換えダイアログを表示し、入力条件で置換えしています。

置換え後に処理があるのですが、ダイアログでキャンセルボタンを押した場合、その
時点でマクロが中断されるようなのですが、
処理を続行する手段はありませんか?

[ ]
RE:05230 ダイアログをキャンセルした場合No.05232
Iranoan さん 06/09/15 15:49
 
 まふまふさん今日は、Iranoan です。
> replacedialog で置換えダイアログを表示し、入力条件で置換えしています。
>
> 置換え後に処理があるのですが、ダイアログでキャンセルボタンを押した場合、その
> 時点でマクロが中断されるようなのですが、
 試したところ、「マクロを中断しますか?」とメッセージが表示されます。
この仕様も良くなくて、キャンセルしたら replaceall 等と同様 result=-1
の方が良い気がしますね。

[ ]
RE:05232 ダイアログをキャンセルした場合No.05234
秀丸担当 さん 06/09/15 16:05
 

> 置換え後に処理があるのですが、ダイアログでキャンセルボタンを押した場合、
> その
> 時点でマクロが中断されるようなのですが、

試しにやってみましたが、ダイアログでキャンセルを押した後もマクロは続行し
ています。
replacedialog "a", "b";
message str(result);

Iranoanさんのところでも中断されるとのことですが、何かが違うのでしょうか。
秀丸エディタのバージョンはV5.18とV6.00のどちらでも続行されています。

[ ]
RE:05234 ダイアログをキャンセルした場合No.05235
Iranoan さん 06/09/15 16:21
 
 秀丸担当さん今日は、Iranoan です。
> 試しにやってみましたが、ダイアログでキャンセルを押した後もマクロは続行し
> ています。
<snip>
> Iranoanさんのところでも中断されるとのことですが、何かが違うのでしょうか。
> 秀丸エディタのバージョンはV5.18とV6.00のどちらでも続行されています。
 [上/下検索] は問題ないのですが、[全置換] で表示されるダイアログ・
ボックスで [中断] をした時に、
> 「マクロを中断しますか?」とメッセージが表示されます。
となります。この場合は、置換を終了し、result=-1 となると他と統一性があ
ると思います。
 こちらの環境は、WindowsXP+IE6.0+秀丸 Ver.6.00 です。

[ ]
RE:05235 ダイアログをキャンセルした場合No.05236
秀丸担当 さん 06/09/15 17:04
 

> [上/下検索] は問題ないのですが、[全置換] で表示されるダイアログ・
>ボックスで [中断] をした時に、
>> 「マクロを中断しますか?」とメッセージが表示されます。
>となります。この場合は、置換を終了し、result=-1 となると他と統一性があ
>ると思います。

全置換の場合はマクロの中断メッセージが出ますね。
全置換の場合は中断して続行すると何かしら危険なことがありそうなので、マク
ロの中断メッセージを出したほうが安全なのではないかと思います。

置換ダイアログをキャンセルした場合は、grepダイアログのようにresult=-2に
なっていると利用価値はあるかもしれませんね。

[ ]
RE:05236 ダイアログをキャンセルした場合No.05238
Iranoan さん 06/09/15 20:19
 
 秀丸担当さん今日は、Iranoan です。
> 全置換の場合はマクロの中断メッセージが出ますね。
> 全置換の場合は中断して続行すると何かしら危険なことがありそうなので、マク
> ロの中断メッセージを出したほうが安全なのではないかと思います。
>
> 置換ダイアログをキャンセルした場合は、grepダイアログのようにresult=-2に
> なっていると利用価値はあるかもしれませんね。
 私は、
・置換ダイアログ・ボックスで中止
  result=-2
・全置換で中断
  result=-1
とし、後の処理はマクロ作成者に任せて良いと思います。

[ ]
RE:05238 ダイアログをキャンセルした場合No.05245
まふまふ さん 06/09/19 11:59
 
みなさんいろいろとありがとうございます。

私のプログラムミスで、以降の処理が通らなかっただけのようです。
message str(result); で確認できました。
すいませんでした。

[ ]