setwindowsizeについてNo.01044
SAS さん 00/02/21 13:49
 
秀丸担当様こんにちは。
以前、setwindowsize2の要望のツリーでもチラっと書いたのですが、
僕の勘違いでなければ、setwindowsizeでウィンドウ幅を現在より小さくするときに、
ある条件でウィンドウサイズが変更されない場合があるようです。

これは拙作の「表示変更マクロ集」で折り返し文字数にウィンドウ幅を合わせる
処理を書いているときに気付いて不思議に思ってたのですが、取り合えず、
拙マクロでは「1行文字数を越えたウィンドウを自動的に小さくする」がONに
なっていることを動作条件にするなどして、その特定の条件にならないよう
にして逃げています。
しかし、できれば、「1行文字数を越えたウィンドウを自動的に小さくする」が
OFFでも動作できるようにマクロを直したいので、この現象について、
調べてみました。

以下のようなテストマクロを使い、折り返し文字数100文字で
実験してみました。

//////////////////////////////////////////////////////////////////
$s = input("setwindowsizeの渡したい幅文字数入力", str(windowwidth));
setwindowsize val($s), windowheight;
//////////////////////////////////////////////////////////////////

テストした環境ですが、「Windows95 4.00.950a + 秀丸Ver3.05」で、
「1行文字数を越えたウィンドウを自動的に小さくする」はOFFに設定です。

【実験結果】
折り返し文字数が100のとき
左余白無し、行番号表示 ウィンドウ幅を縮小時 105の指定でサイズが変更されない
左余白有り、行番号表示 ウィンドウ幅を縮小時 105が指定でサイズが変更されない
左余白無し、行番号非表示 ウィンドウ幅を縮小時 100でサイズが変更されない
左余白有り、行番号非表示 ウィンドウ幅を縮小時 100でサイズが変更されない
尚、折り返し文字数が80だと行番号ONで85が不可、
行番号OFFで80が不可でした。

実験前は左余白の有無が関係しているように思ってたのですが、
僕の勘違いであったようで左余白の有無は関係無いようです。
またこれはウィンドウ幅を現在幅より縮小する場合のみの現象で、
ウィンドウ幅を大きくする時は105及び100の指定でも問題ありませんでした。

ひょっとしたら仕様とかうちの環境の問題なのかもしれませんが、
一度この件について調べて頂けないでしょうか?宜しくお願いします。

[ ]
RE:01044 setwindowsizeについてNo.01045
SAS さん 00/02/21 14:03
 
少し言葉足らずだったので、補足です。

>しかし、できれば、「1行文字数を越えたウィンドウを自動的に小さくする」が
>OFFでも動作できるようにマクロを直したいので、この現象について、
実験結果から分かるとおり、現状では、
「1行文字数を越えたウィンドウを自動的に小さくする」がOFFだと、
折り返し文字数にウィンドウ幅を合わせることがウィンド幅を小さくする
ときにはできないという意味です(まぁ実験結果を見る限りは、
いったん折り返し文字数よりウィンドウ幅を小さくしてから、
折り返し文字数に合わせるという二段の処理を行えば、
可能みたいなのですが・・・できればすっきり処理したいので・・・
環境や仕様の問題かどうかも知りたいし・・・ということで質問させて
頂きました)。

[ ]
RE:01045 setwindowsizeについてNo.01052
秀丸担当 さん 00/02/22 15:45
 
>実験結果から分かるとおり、現状では、
>「1行文字数を越えたウィンドウを自動的に小さくする」がOFFだと、
>折り返し文字数にウィンドウ幅を合わせることがウィンド幅を小さくする
>ときにはできないという意味です(まぁ実験結果を見る限りは、
>いったん折り返し文字数よりウィンドウ幅を小さくしてから、
>折り返し文字数に合わせるという二段の処理を行えば、
>可能みたいなのですが・・・できればすっきり処理したいので・・・
>環境や仕様の問題かどうかも知りたいし・・・ということで質問させて
>頂きました)。

調べてみました。
ウィンドウ幅が折り返し文字数より大きいとき、
折り返し文字数+行番号の桁数(通常で5)を指定すると、
サイズ変更されないようになっていました。
行番号表示している場合は折り返し文字数+5、
行番号表示してない場合は折り返し文字数、
の指定するとサイズ変更されません。
これは仕様ではなくバグと思われるので、直しておきます。

[ ]
RE:01052 setwindowsizeについてNo.01060
SAS さん 00/02/24 23:28
 
秀丸担当 様、早速の調査ありがとうございました。

>これは仕様ではなくバグと思われるので、直しておきます。
これで、自作マクロの方もすっきりと改良できそうです。

[ ]