setwindowsizeについてNo.04618
にひら さん 99/12/10 15:20
 
WindowsNT4.0WS(SP5)で秀丸Ver3.01を使用しています。
マクロの利用で
config "w100";
setwindowsize 100,44;
としますと、ウィンドウサイズが100でなく95くらいになってしまいます。どうやら
色々試してみますといつもsetwindowsize指定より5少ない状況になるようです。現在は
config "w100";
setwindowsize 105,44;
などとして利用しておりますので別段困りはしないのですが、これはこういうものな
のでしょうか?それとも誤作動でしょうか?
教えて戴けますと幸いです。

追記:マクロヘルプの「config文」項目最後の行は「;」が足りない
   のではないでしょうか。

[ ]
RE:04618 setwindowsizeについてNo.04622
秀丸担当 さん 99/12/10 18:12
 
>WindowsNT4.0WS(SP5)で秀丸Ver3.01を使用しています。
>マクロの利用で
>config "w100";
>setwindowsize 100,44;
>としますと、ウィンドウサイズが100でなく95くらいになってしまいます。どうやら
>色々試し

これは、文字が100字見えるサイズではなく,ウィンドウサイズが100文字分
であるため、行番号表示なども含んでしまうので、そうなってしまいます。
うーむ。

[ ]
RE:04622 setwindowsizeについてNo.04623
にひら さん 99/12/10 18:32
 

 秀丸担当様、お返事ありがとうございます。

> >WindowsNT4.0WS(SP5)で秀丸Ver3.01を使用しています。
> >マクロの利用で
> >config "w100";
> >setwindowsize 100,44;
> >としますと、ウィンドウサイズが100でなく95くらいになってしまいます

> これは、文字が100字見えるサイズではなく,ウィンドウサイズが100文字分
> であるため、行番号表示なども含んでしまうので、そうなってしまいます。
> うーむ。


 なるほどそういうことですか。納得しました。
 行番号表示を確認して、表示状態であれば5増やせばいいですね。
 でも、できましたら行番号表示でもそうでなくてもsetwindowsizeで指定した
文字数にしていただけたらと思います。

[ ]
RE:04618 setwindowsizeについてNo.04624
ひろ さん 99/12/10 19:32
 
 にひらさん今日は、ひろです。
> setwindowsize 100,44;
> としますと、ウィンドウサイズが100でなく95くらいになってしまいます。どうやら
> 色々試してみますといつもsetwindowsize指定より5少ない状況になるようです。現在は
 window size をどの範囲と考えるかによる違いだと思います。どうやら秀丸 macro
のsetwindowsize は、default 設定で白の部分、つまり編集可能領域に加え行番号部
分と
「その他」→「動作環境」→「ウィンドー」→「高度なウィンドウ設定」の「ウィン

ウの左に余白を入れる」が ON ならその余白を横幅と考えるようです。

 逆に言えば、行番号を表示しないで、「その他」→「動作環境」→「ウィンドー」

「高度なウィンドウ設定」の「ウィンドウの左に余白を入れる」を OFF にしておけ
ば、
setwindowsize 100,44;
で、にひらさんの感覚でいう横幅が 100 桁になります。

 秀丸担当様へ
 私個人としては、上記の仕様は解りにくいので、行番号と左の余白は window size
に加えないほうが良いと思うのですが、如何でしょうか? やはりいまさら仕様を変更
するのは拙いのでしょうか?

[ ]
RE:04624 setwindowsizeについてNo.04633
秀丸担当 さん 99/12/13 18:51
 
> 秀丸担当様へ
> 私個人としては、上記の仕様は解りにくいので、行番号と左の余白は window size
>に加えないほうが良いと思うのですが、如何でしょうか? やはりいまさら仕様を変更
>するのは拙いのでしょうか?

たしかに、そうですね。
仕様を変えるとまずい気がするので、変えるとしたら新しい文を
追加したほうがいいでしょうか。

[ ]
RE:04633 setwindowsizeについてNo.04640
ひろ さん 99/12/14 17:42
 
 秀丸担当様今日は、ひろです。
> 仕様を変えるとまずい気がするので、変えるとしたら新しい文を
> 追加したほうがいいでしょうか。
 今の仕様を忠実に守って、行番号などを考慮に入れて使っている方がどれ
ぐらいあるか解りませんが(^^)、出来たら新たな command を追加していただ
きたいです。

[ ]
RE:04640 setwindowsizeについてNo.04666
SAS さん 99/12/17 00:21
 
秀丸担当さん、ひろさん、にひらさん、こんにちは。

> > 追加したほうがいいでしょうか。
>  今の仕様を忠実に守って、行番号などを考慮に入れて使っている方がどれ
> ぐらいあるか解りませんが(^^)、出来たら新たな command を追加していただ
> きたいです。
新たなCOMMAND追加に一票です。

拙作の「表示変更マクロ集」において、折り返し文字数の変更と、
それに合わせたウィンドウイズの変更を同時に行うマクロがあるのですが、
これ作る時、現状のsetwindowsizeの仕様にはやはり嵌りました。
現状のsetwindowsizeでややこしいのは、行番号と余白を考慮した上で、
サイズ指定しても問題が出るケースがあることです。
「1行の文字数を越えたウィンドウを自動的に小さくする」がOFFで、
行番号が表示されていない時に、
setwindowsizeで現在より大きなウィンドウサイズに変更する分には
問題無いのですが、現在より小さなウィンドウサイズへのsetwindowsizeが
うまくいきません(行番号が表示されていれば変更できるし、行番号が
表示されていなくても、「1行の文字数を越えたウィンドウを自動的に
小さくする」がONであれば変更できます)。
よく覚えていないのですが、他にもsetwindowsizeの挙動が不思議に感じる
ところが、あったかもしれません。

結局、「表示変更マクロ集」の場合は、ウィンドウサイズを折り返し文字数に
合わせて変更するときは、
「1行の文字数を越えたウィンドウを自動的に小さくする」がONであることが
前提条件で処理しています。
もしOFFであれば警告を出して「自動的にONに変更してから処理する」か、
「ONに変更しないで折り返し文字数だけを変える」をユーザーが選べるようにし
ました。
(警告を出さずに、内部的に、「OFFならONにして処理終了後OFFに戻す」ように
してもよかったのですが、ユーザーの見えないところでレジストリの値を変更する
のに抵抗があったので、このような仕様にしています)。

「1行の文字数を越えたウィンドウを自動的に小さくする」がONだという、
前提であれば、行番号や余白を考慮する処理も省略することが出来て、

setwindowsize ##wval+10,windowheight; // 少し大きめに設定する

のように、行番号・余白の有無に関わらず、実際に変更したいサイズより
大きめの値を指定しておけば(秀丸で扱えるテキストは最大1000万行なので
10足しておけば多分問題無いでしょう)、ウィンドウサイズを指定文字数に
確実に変更することができます。

と、このような処理を行ったのですが、やはり、行番号や余白の有無とは、
関係無く使える新しい文があれば、単純に処理が行えるし、
「1行の文字数を越えたウィンドウを自動的に小さくする」のON/OFFを
気にする必要もなくなりますから、新しい文は欲しいです。

拙作マクロの場合は上記のような処理なので、新COMMAND追加でなく、
仕様変更であっても動作しなくなることは無いのですが、やはり、
仕様変更ではなく追加の方がいいように思います。

               SAS

[ ]