disabledraw + disableinvertNo.02471
ひろ さん 01/10/07 12:09
 
 皆さん今日は、ひろです。
disabledraw;
disableinvert;
というのは果たして何か意味があるのでしょうか? 書換禁止をしたら、反転
表示をどうするかは関係ないですよね。それとも速度の向上が期待できるの
でしょうか?
 あと /h オプションで起動した画面、showwindow 0 と disabledraw の
組み合わせで、何が期待できるのがわかりません。

[ ]
RE:02471 disabledraw + disableinvertNo.02475
Makkie さん 01/10/08 14:45
 
> 皆さん今日は、ひろです。

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で要求が実現できてもよさそうだし、そういう秀
丸の仕様もありうると思いますが、現状のようになっている理由も、
何となく理解できます。

[ ]
RE:02475 disabledraw + disableinvertNo.02477
ひろ さん 01/10/09 00:19
 
 Makkie さん今日は、ひろです。
> つまり、disabledraw + disableinvert に意味があるのではなく、そ
> の対になる enabledraw + enableinvert に意味があるわけです。
 ありがとうございます。
 サンプルマクロのような方法を何かの機会に利用させていただきます。

[ ]