|
> 皆さん今日は、ひろです。
Makkie と申します。私の投稿(02435)の近くに見つけましたのでコ
メントします。
>disabledraw;
>disableinvert;
>というのは果たして何か意味があるのでしょうか? 書換禁止をしたら、反転
>表示をどうするかは関係ないですよね。それとも速度の向上が期待できるの
>でしょうか?
これについては経験があるので、問題の全部じゃないかもしれないけ
どコメントができると思います。
つまり、disabledraw + disableinvert に意味があるのではなく、そ
の対になる enabledraw + enableinvert に意味があるわけです。
今、次のような条件で、ある処理を行うマクロを作りたいとします。
(1)その処理は、何らかの理由で disabledraw 状態でやりたい。
(2)その処理の最終結果は、ある文字列を範囲選択することであ
る。それこそが処理の目的である。
下の例題では「検索の結果=範囲選択」のモードでの
searchdown "abc"; をその例としています。ちょっと簡単
過ぎますが・・・。
(3)従って、処理が終わって enabledraw したときにも範囲選択は
残ってほしい
この要求を実現するためには
(コーディング例:1)
disabledraw;
searchdown "abc";
enabledraw;
ではダメで
(コーディング例:2)
disabledraw;
disableinvert;
( または disableinvert;
disabledraw; )
searchdown "abc";
enabledraw;
enableinvert;
とやることになります。つまり enabledraw 直後の enableinvert で
この要求は実現できるわけで、disableinvert は enableinvert を有
効にするためのおまじないとうわけです。enabledraw で画面の先頭行
を指定してもよく、そうすると範囲選択を画面の真ん中にもってきた
りできます。
コーディング例:1で要求が実現できてもよさそうだし、そういう秀
丸の仕様もありうると思いますが、現状のようになっている理由も、
何となく理解できます。
|
|