English help on website



disabledraw文(Ver9.24対応版)
目次− disabledraw文
disabledraw文は、画面の書き換えを禁止します。
disabledraw;
パラメータ
パラメータはありません。

結果コード
resultは使用しません。


マクロ起動時は許可状態になっています。
長い編集作業を短時間で終わらせたい場合に、まずdisabledrawして作業を開始し、編集が終わったらenabledrawすると効果的です。
ただし、enabledrawを実行するときに画面をすべて書き直すことになるので、短時間で終わる処理をdisabledraw/enabledrawで囲むとかえって処理速度が低下することに注意してください。

disabledrawの状態は、ウィンドウごとに状態を覚えています。disabledrawしてから、setactivehidemaruなどをして他の秀丸エディタに移すとdisabledrawの状態は解除されるので注意が必要です。

単純に描画だけをしないdisabledraw2もあります。
disabledraw;
gofiletop;
beginsel;
gofileend;
cut;
enabledraw;
disabledrawしたのにenabledrawを忘れたままマクロの実行が終了すると、自動的に画面をすべて書き換えます。

enabledrawが実行された時、カーソルが画面のどの位置に表示されるかは秀丸エディタ側が適当に決めてしまいます。
これをマクロ側で制御するには、enabledraw文のパラメータで指定できます。

disabledraw中は、内部的にはウィンドウサイズをゼロとして高速に処理しています。enabledraw後にスクロール位置がずれるのもそのためです。rollup,rolldown等も正しいスクロール量でスクロールしません。

disabledrawをすると、検索後のカーソル状態の情報は失われ、searchdown2などの連続した検索の動作に違いが出てきます。
この問題を解消するには、setcompatiblemodeで0x00800000を指定すると、disabledrawの有無に関わらず、検索後のカーソル状態は維持されます。(V8.66β6以降)

参照:
 影響の及ぶ範囲(execmacro)
 影響の及ぶ範囲(アクティブ切り替え)
 disabledraw2