|
以下の手順で、runex などでの表示が乱れることがあります。
ざっくり言うと「実行中にスクロールすると表示が乱れる」という症状です。
(1)準備その1
どこかの作業フォルダに test1.bat というファイルを作ります。
内容は以下です。
ここから >>>>
@echo off
for /L %%i in (1, 1, 50) do (
echo %%i
sleep 0.3
)
<<<< ここまで
これは、
1から50までの数値を、0.3 秒毎に出力するバッチファイルです。
秀丸の縦の行数は、表示される数字の最大値(=50)よりも、
ある程度小さく、例えば25行とかだとします。
(2)準備その2
秀丸マクロフォルダに、以下のマクロ test1.mac を作成します。
ここから >>>>
runex "test1.bat"
, 0 //sync 0:async 1:sync
, 1, "" //stdin 0:none 1:auto 2:file 3:(reserve) 4:all 5:select
, 1, "" //stdout 0:none 1:auto 2:file 3:add file 4:new 5:insert
6:replace
, 1, "" //stderr 0:none 1:=out/auto 2:file 3:add file 4:new 5:in
sert 6:replace
, 1, "" //folder 0:none 1:current 2:specify 3:(reserve) 4:exe's f
older
, 0 //show 0:auto 1:show 2:hide
, 0 //nodraw 0:draw 1:no draw
, 0 //unicode 0:ansi 2:unicode
;
<<<< ここまで
先ほど作ったバッチファイルを実行するだけのマクロです。
(3)実行その1
test1.bat を開いて、test1.mac を実行します。
実行すると、新しい秀丸が開き、1(return) 2(return) 3(return)
という感じで順に数字が出力されていきます。
しばらくすると、数字が秀丸の下の端に到達して、スクロールし始めます。
(秀丸の縦が25行なら、「26」を出力するときからスクロールが始まります。)
(4)実行その2
「30」ぐらいまで表示されたところで、秀丸の右端のスクロールバーを上に移動し
ます。
すると、画面がスクロールしますが、その間も test1.bat が実行され続けています。
その間の test1.bat の出力が、下から3行目ぐらいに出力されてしまいます。
(5)実行その2の詳細な記述
細かく書きますと、スクロールが始まって、30まで出力されたとします。
<図1>
(略)
26
27
28
29
30 <--- 「30」まで出力された
---------------- <-- 秀丸の下の端
ここで上にスクロールして
<図2>
(略)
21
22
23
24
25 <--- 5行分、スクロールされたとすると、こんな感じに
---------------- <-- 秀丸の下の端
みたいにすると、次の出力「31」が
<図3>
(略)
21
22
23
31 <--- 「31」がここに入ってしまう
24
25
---------------- <-- 秀丸の下の端
みたいになります。以下、32 33 は、31 の下に入ります。
最終的に、50 まで出力されますが、
<図4>
(略)
48
49
50 <--- 最後の「50」まで出力された
24 <--- この
25 <--- 2行は、表示が乱れたまま残る
---------------- <-- 秀丸の下の端
となります。
上記手順は、再現用に単純なものを示しましたが、
実際のところは、1分に1回程度出力を出しながら数時間かかる計算を
しています。
で、途中でスクロールすると、後が乱れてしまう、という状況です。
何が論点なのかよくわからないのですが、
・上にスクロールして、最下部が見えなくなっている時に、
最下部に追加されるべき新しい出力のリクエストが来たら、
最下部が見えるように強制的にスクロールして、
最下部に追加する。
という処理にしてもとりあえず解決していますが、
表示間隔(=今回は 0.3 秒)がさらに短いと、実質的に上をスクロールで
見ることができなくなってしまうので、
・上にスクロールして、最下部が見えなくなっている時に、
最下部に追加されるべき新しい出力のリクエストが来たら、
見えていない最下部に追加しておく。
最下部までスクロールが戻ったら表示される。
となって欲しいと思っています。
あるいは
・上にスクロールしている時は表示が乱れるけど、一番下まで
スクロールが戻った時には全部あるべき姿に戻る。
でも、現状よりはずっとうれしいです。
どうにかなるもんでしょうか。
あるいは何か私の秀丸の設定に不足があるのでしょうか。
実を言うと、これはさらに「ついで」の件なんですが、上記(図1)の状態で、
・カーソルキーや、[PageUP] [PageDown] キーなどや、
カーソル移動にキーバインドしてあるキーでもスクロールできる。
・カーソルを動かして、キーバインドしてあるマクロを動かしたり、
文字列を選択・コピーしたり、
検索したりできる。
ともっとうれしいです。
|
|