「menu」からの分岐No.04356
マボカル さん 04/05/26 16:11
 
会議室の皆様。こんにちは。何度かハンドルネーム「Majima」で質問
させてもらっていましたが、ハンドルネームを「マボカル」に変えま
した(特に説明する意味は無いですが、以前の投稿と関係するかも
しれないので、一応記しておきます)。

まだ自分一人で完全なマクロを組む力が無く、いつものように他の作者
さんのマクロを改造しています。以下のように「menu」で分岐をさせ
て、幾つかの求める作業をしようと考えていますが、どうも分岐しない
ようです。「menu」の一番下の「Quit」だけはちゃんと認識してマクロ
を終了していますが、他の四つは何をやっても「menu」のままです。

「menu」からの分岐の方法という非常に単純な質問ですが、ここでは何
が間違っているのでしょうか。前日からずっと考え続けていますが原因
が分かりませんでした。どうかよろしくお願いします。

config "l+ o+";
#free = freecursor;
if( !#free ) freecursorswitch;
while( 1 ) {
    #x = x; #y = y;
    setmark;
    moveto 50, #y;

menu "*****(Align_Step2)*****",
     "&1 Origin : Trans (1:1)",
     "&2 Add Trans      (1:2)",
     "&3 Add Original   (2:1)",
     "&4 Delete Trans   (1:0)",
     "***********************",
     "&Q Quit";
    #r = result;
    moveto #x, #y;
    setmark;

if( #r == 0 || #r == 7 ) break;
else if( result == 2 ) call Corres;
else if( result == 3 ) call AddTrans;
else if( result == 4 ) call AddOrigin;
else if( result == 5 ) call DelTrans;
if( lineno >= linecount2 - 2 ) endmacro;
}
if( !#free ) freecursorswitch;
RestoreSearchMode:
endmacro;

Corres:
insert "Corres";
return;

AddTrans:
message "AddTrans";
return;

AddOrigin:
message "AddOrigin";
return;

DelTrans:
message "DelTrans";
return;

[ ]
RE:04356 「menu」からの分岐No.04357
ENCODINGSHIFTJIS さん 04/05/26 17:39
 
秀丸エディタVersion4.10 マクロ言語ヘルプ
結果コードと定数関連キーワード
 resultキーワードは、基本的には【直前】に行った命令の結果を返すことになって
います。
・・・・
 ところで、結果コードは1文実行するごとに書き変わるのが普通ですが、以下の場
合には結果コードはそのまま維持されます。
・・・・

else if( result == 2 ) call Corres;
else if( result == 3 ) call AddTrans;
else if( result == 4 ) call AddOrigin;
else if( result == 5 ) call DelTrans;

    #r = result;
    moveto #x, #y;
    setmark;  // ここで、変わるかも

[ ]
RE:04356 「menu」からの分岐No.04358
山紫水明 さん 04/05/26 19:58
 
 マボカルさん,こんばんは。

》if( #r == 0 || #r == 7 ) break;
》else if( result == 2 ) call Corres;
》else if( result == 3 ) call AddTrans;
》else if( result == 4 ) call AddOrigin;
》else if( result == 5 ) call DelTrans;

 せっかく result を #r で受けてありますので,すべて #r にしてください。
else if( #r == 2 ) call Corres;
else if( #r == 3 ) call AddTrans;
・・・・

     では, (^^)/~
                                        山紫水明(ユーザー)

[ ]
RE:04357 「menu」からの分岐No.04359
マボカル さん 04/05/26 21:05
 
ENCODINGSHIFTJISさん

いつもコメント有難うございます。

>秀丸エディタVersion4.10 マクロ言語ヘルプ
>結果コードと定数関連キーワード

マクロ言語のヘルプも参考します。大体私の場合は実際のマクロの
動きを見て「あ、こんな動きをするんだぁ」と気づくものが殆ど
ですので、マクロ文に使われるキーワードを見てもあんまりピンと
きませんが、それも一つ一つ勉強ですね。スペルミスだったり「;」が
抜けていたりと、毎回つまらないミスをしながらやっているもんで。

[ ]
RE:04358 「menu」からの分岐No.04360
マボカル さん 04/05/26 21:09
 
山紫水明さん

ご回答ありがとうございます。

>せっかく result を #r で受けてありますので,すべて #r にして
>ください。

はぁ、そうでしたか。何で動かないんだろう??と思っていましたが、
やっと解決しました。この件で昨日から一日中考えていたのが何だった
のだろうという感じですが、とにかく今はちゃんと動いてくれている
ので、嬉しい気持ちで一杯です。続けて作業が出来そうです。どうも
ありがとうございました。

[ ]