|
>β23で修正させていただきます。
A1 です。報告が遅れました。(β24 …)
V8β23,24 に於いて、エントリの最初に提示したコードは期待通りの動作となりまし
たが、
報告のきっかけになった自作マクロにおいて、不具合が出たために問題箇所を絞り込
んでいました。
結論から言うと、V8 タブモードにて「ステルス秀丸」をタブ分離で立ち上げた場合に
(a) ステルス状態での文字サイズの変更(とそれに伴う再計算※)が表示
(showwindow 1)まで一部反映されない。
マクロによるパラメータ取得にも影響している。
※折り返しの設定を「ウィンドウ幅に合わせる」とした状態における
折り返し文字数の再計算のこと(今回これしか見てません m(__)m)
(b) 1 回目の showwindow 後でも、反映されない要素が残る(描画が乱れる)。
(c) 「showwindow 1」を 2 回繰り返すと何故か正しく計算・描画される。
というものです。別の不具合というよりも、隠れていたものが露出したという印象で
す。
回避策は前回同様、「 showwindow を繰り返す」です。 (^^;
御検討をお願いします。
(A1)
-- 拙い実験結果(長いです) ------------------------------------------------
----------
・試用環境
(1) V8.0β24 整数版 @ Vista 32SP1 Desktop: 1440x900 ←断らない限
り、こちら
(2) V8.0β24 整数版64 @ Vista 64SP1 Desktop: 1920x1200
●ステルス状態からゆっくり表示
以下のコードは、ステルス状態で開始した秀丸でウインドウサイズを設定し、
数秒の間に(showwindow を繰りかえして)表示するというものです。
--↓ tabtest2.mac -------------------------------------------
openfile "/n/h/i"; // 非表示・タブ分離
// ファイルタイプ別の設定
config "xShowLineNo:- xRuler:+ xAutoAdjustOrikaeshi:1 xOutline:-"; //
ウィンドウ幅に合わせる
// フォント
config "xFont:(MS ゴシック) xFontSize:20";
configcolor "[0][0]:0xFF8000 [0][1]:0x000000"; // (見易くする為)黒バック
setwindowsize 122, 20; // 幅と高さ
// *********************
sleep 1000; // この間は表示されない
insert "折り返し(showwindow 前): "+str(width)+"\n";
sleep 1000;
showwindow 1;
sleep 1000;
insert "折り返し(showwindow 1 回目): "+str(width)+"\n";
sleep 1000;
showwindow 1; // V8β
sleep 1000;
insert "折り返し(showwindow 2 回目): "+str(width)+"\n";
sleep 1000;
endmacro;
--↑ tabtest2.mac -------------------------------------------
V8タブモードにて実行し、動作を眺めると、1 回目の showwindow 1 では描画が不完
全で、
(前回の tabtest.mac 同様)2 回目の showwindow 1 でやっと揃うという挙動です。
実行結果は次のようになります。([] 内は環境 (2) の結果)
--↓ --------------------------------------------------------
折り返し(showwindow 前): 105 [141] (…NG)
折り返し(showwindow 1 回目): 105 [141] (…NG)
折り返し(showwindow 2 回目): 121 [121] (…OK)
--↑ --------------------------------------------------------
表示されるのは(キーワード width で取得する)折り返し文字数ですが、
2 回目の showwindow 1 で意図通りの文字数になる(描画も問題ない)ものの、
直前まで折り返し文字数が過少に※なっています。
※(1),(2) 両環境において、V7 タブモードでは 3 つとも 121 と出ます。
2 回目の showwindow 1 から 4 行分をコメントアウトすると、
マクロ終了時点での秀丸ウィンドウはこんな状態になります。
1. タイトル・メニュー・ツールバー・タブ・垂直スクロールバー
(≒上の方のアイテム)は描画されている。
2. ファンクションキー・ステータスバー・水平スクロールバー
(≒下の方のアイテム)は描画されていない。
3. テキスト部分の幅が(表示のみでなくマクロ側から見ても)設定※と合って
ない。
その分描画領域が欠ける(タブを閉じる [×] ボタンもずれている)。
※行番号等は省いてあるので setwindowsize で
指定した分の大半が使われるはず
コメントアウトを戻して 5 行目のフォントサイズの指定を(少し小さめに)
"xFontSize:15" とすると、実行結果は
--↓ --------------------------------------------------------
折り返し(showwindow 前): 131 (…NG)
折り返し(showwindow 1 回目): 131 (…NG)
折り返し(showwindow 2 回目): 121 (…OK)
--↑ --------------------------------------------------------
となります。今度は折り返し文字数が過大です。
このことから、
デフォルトのウィンドウ幅から、フォントの大小に応じて折り返し文字数を加減
していたが、
setwindowsize の時点で再計算されず 1 回目の showwindow の後まで残ってし
まった。
かのように思えるのですが、どうでしょうか?
●一旦表示→ステルス状態での折り返し再計算
次に tabtest2.mac の 9 行目以降を変更して、tabtest3.mac とします。
一旦ウィンドウを表示してから、再びステルスに戻って文字サイズを変更するという
ものです。
--↓ tabtest3.mac (部分) ------------------------------------
// *********************
insert "折り返し(showwindow 前): "+str(width)+"\n";
showwindow 1;
// showwindow 1; // V8β
insert "折り返し(showwindow 後): "+str(width)+"\n";
showwindow 0;
config "xFontSize:15";
insert "折り返し(FontSize=15): "+str(width)+"\n";
config "xFontSize:20";
insert "折り返し(FontSize=20): "+str(width)+"\n";
showwindow 1;
endmacro;
--↑ tabtest3.mac (部分) ------------------------------------
これを実行すると、([] 内は環境 (2))
--↓ --------------------------------------------------------
折り返し(showwindow 前): 105 [141] (…NG)
折り返し(showwindow 後): 105 [141] (…NG)
折り返し(FontSize=15): 131 [176] (…NG)
折り返し(FontSize=20): 105 [141] (…NG)
--↑ --------------------------------------------------------
となります。やはり文字数が合いません。
「// V8β」と付されている 2 回目の showwindow 1 を有効にすると
--↓ --------------------------------------------------------
折り返し(showwindow 前): 105 (…NG)
折り返し(showwindow 後): 121 (…OK)
折り返し(FontSize=15): 152 (…OK)
折り返し(FontSize=20): 121 (…OK)
--↑ --------------------------------------------------------
となります。showwindow 1 を 2 度繰り返すことで(再びステルスに戻っても)
以降の文字数は正しく計算されています。
|
|