getfocus, setfocus の使い方No.10559
白雲斎 さん 06/06/08 08:26
 
こんにちは、白雲斎です。
Windows XP, 秀丸エディタ 6.00β30

2点の質問があります。

1) setfocus でマクロ・エラー

    「編集エリア」で以下のマクロを実行します。

    if( getfocus != 1 ) setfocus 1;

    結果、マクロ・エラーとなりますが、エラーで良いのですか?

2) フォーカス移動の要望

    マクロ実行開始時のフォーカスが「アウトライン解析の枠」「ツールバーの
    検索ボックス」であると、いかなるマクロも実行できませんよね。
    しかし、「アウトライン解析の枠」を表示した状態で、「編集エリア」にフ
    ォーカスを置いて以下のマクロを実行すると、一旦「アウトライン解析の
    枠」に移動したフォーカスが、自動的に「編集エリア」にフォーカス移動し
    て、最後のコマンドまで実行します。

    message "start";
    if( getfocus == 1 ) setfocus 2;
    message "end";

    この機能を利用して、「アウトライン解析の枠」「ツールバーの検索ボック
    ス」にフォーカスがある状態でマクロを実行する手段を提供するのは難しい
    でしょうか?
    ・「編集エリア」に無条件でフォーカス移動する
    もしくは、
    ・(1)で示した「if( getfocus != 1 ) setfocus 1;」が機能する

[ ]
RE:10559 getfocus, setfocus の使い方No.10564
秀丸担当 さん 06/06/08 16:17
 

>1) setfocus でマクロ・エラー

これは確かにおかしかったです。
if文で条件に合わないときの飛ばす文の中にsetfocusが含まれているとまずいこ
とになっていました。
修正させていただきます。

>2) フォーカス移動の要望

枠にフォーカスがあるときは、あらかたのキー割り当ては働いています。Ctrl+1
〜9とCtrl+0は働いていませんでした。これは働くように修正したいと思います。

検索ボックスのときのキー割り当ては、「検索ボックス」コマンドに割り当てた
キーのみ働いています。それと検索ダイアログと同等のキーが動作します。
あとは通常のエディットコントロールのCtrl+V,Ctrl+Cなどが働きます。
マクロに割り当てたキーも割り当てたほうがいいかもしれないので、マクロも働
くようにしてみようと思います。

[ ]
RE:10564 getfocus, setfocus の使い方No.10565
白雲斎 さん 06/06/08 16:53
 
こんにちは 秀丸担当 さん、白雲斎です。

>>1) setfocus でマクロ・エラー
>
>これは確かにおかしかったです。
>if文で条件に合わないときの飛ばす文の中にsetfocusが含まれているとまずいこ
>とになっていました。
>修正させていただきます。

よろしくお願いします。

>>2) フォーカス移動の要望
>
>枠にフォーカスがあるときは、あらかたのキー割り当ては働いています。Ctrl+1
>〜9とCtrl+0は働いていませんでした。これは働くように修正したいと思います。

書いていないことまで読み取っての回答、ありがとうございます。
確かに、一時マクロにはCtrl+5を割り当て、これを実行していました。
また、メニューからの実行ではフォーカスに関係なく実行できることを確認しま
した。もう少し、確認作業を広げるべきでした。申し訳ないです。

>検索ボックスのときのキー割り当ては、「検索ボックス」コマンドに割り当てた
>キーのみ働いています。それと検索ダイアログと同等のキーが動作します。
>あとは通常のエディットコントロールのCtrl+V,Ctrl+Cなどが働きます。
>マクロに割り当てたキーも割り当てたほうがいいかもしれないので、マクロも働
>くようにしてみようと思います。

よろしくお願いします。

[ ]