■ 質問はここへ ■

333 にジャンプ
No. 332投稿者: pavlov HP日付: 2001/12/08 08:59:01
題名 : フォントサイズによって桁数を変えてくれるマクロ

フォントサイズを大きくした時に文字が画面からはみ出さない
ように一行表示文字数を減らしてくれて、
小さくした時には逆に増やしてくれるマクロってありますか。

No. 333 (332へのコメント)投稿者: かぶねこ HP日付: 2001/12/08 11:40:21
題名 : Re:フォントサイズによって桁数を変えてくれるマクロ

えっと、QX の画面表示のフォントサイズはポイント数とかじゃなく、ドット数
なので、たとえば表示行1行の総ドット数が一定になるように、フォントサイズ
と文字数を調節すればいいんじゃないでしょうか。すなわち、こんな感じ。1つ
めはフォントサイズを大きくすると同時に1行文字数を減らし、2つめはその反
対です。フォントによっては2ドットずつ増やすのがうまくいかないかも。

'フォントサイズ変化にあわせて表示桁数を調節

proc larger
dim n
n = (@FontSize + @CharPitch) * @Width
@FontSize = @FontSize + 2
@Width = n / (@FontSize + @CharPitch)
end proc

proc smaller
dim n
n = (@FontSize + @CharPitch) * @Width
@FontSize = @FontSize - 2
@Width = n / (@FontSize + @CharPitch)
end proc

No. 334 (333へのコメント)投稿者: pavlov HP日付: 2001/12/08 12:34:44
題名 : Re^2:フォントサイズによって桁数を変えてくれるマクロ

イイ!
イイ感じです。
早速ツールバーに登録しました。
コレ便利ですよ。
即席でこれだけのものがつくれるとは。
感謝。

No. 335 (334へのコメント)投稿者: かぶねこ HP日付: 2001/12/08 13:07:25
題名 : Re^3:フォントサイズによって桁数を変えてくれるマクロ

だいたいご希望の動作になってるようで、よかったです。

「これだけのもの」なんて、正味3行のマクロをそんなにほめられる
と困っちゃいますが。

No. 336 (335へのコメント)投稿者: pavlov HP日付: 2001/12/08 13:36:52
題名 : Re^4:フォントサイズによって桁数を変えてくれるマクロ

自分の場合
@Width = (n-8) / (@FontSize + @CharPitch)
@Width = (n+20) / (@FontSize + @CharPitch)
ぐらいに微調整すると上手くいくみたいです。
人によって違うかもしれませんが。

No. 337 (336へのコメント)投稿者: pavlov HP日付: 2001/12/08 14:16:37
題名 : Re^5:フォントサイズによって桁数を変えてくれるマクロ

桁がずれてきた時のために、かぶねこさんのマクロを参考にして
こんなんつくってみました。マクロ(もどき)初体験。

'桁数調節

proc plus
@Width=@Width+1
end proc

proc minus
@Width=@Width-1
end proc

No. 339 (337へのコメント)投稿者: かぶねこ HP日付: 2001/12/08 18:50:35
題名 : Re^6:マクロ初体験。

ぱちぱち。

最初の一歩、おめでとうございます。あとは行数が増えるだけですね。「こんな
ことができると便利」と思うごとに「マクロでできないかな」とやってみてるう
ちに、たぶんしょっちゅうマクロを書くようになっちゃってます。(^_^)v

No. 338 (336へのコメント)投稿者: かぶねこ HP日付: 2001/12/08 18:46:24
題名 : Re^5:フォントサイズによって桁数を変えてくれるマクロ

なるほど〜。

もし表示画面が一定なら、n とかじゃなく、決まった数値にしてしまうっていう
手もあります。最初に手作業でその数値を計算しなければいけませんが。決まっ
た数値にしておくと、割り算のあまりが原因の幅のずれがなくなるはずです。

proc larger
@FontSize = @FontSize + 2
@Width = 960 / (@FontSize + @CharPitch) '数値は表示1行ドット数
end proc

といったふうになります。ドット数は

proc main
print (@FontSize + @CharPitch) * @Width
end proc

というマクロを実行すると、ステータスバーに数値が表示されます。

No. 344 (338へのコメント)投稿者: dk日付: 2001/12/09 11:09:43
題名 : Re^6:フォントサイズによって桁数を変えてくれるマクロ

フォントサイズを変更した後で サンプルマクロの QWIDTH.MAC にジャンプ
するっていうのはどうでしょうか?
ただ @ScreenWidth を使用すると楽かなあと思っただけなんですが。。。

No. 345 (344へのコメント)投稿者: かぶねこ HP日付: 2001/12/09 15:38:16
題名 : Re^7:フォントサイズによって桁数を変えてくれるマクロ

@ScreenWidth というのがあったんですね。これは行番号表示部分も含んだ幅で
はあるけど、これを使えば文字数で掛け算なんかしなくてもいいですね。すっか
り失念してました。ご指摘ありがとうございます。QWIDTH.MAC のその部分を組
み込むと、

proc larger
dim width
width = @ScreenWidth - 4
if @PrintNumber then width = width - 6
@FontSize = @FontSize + 2
@Width = width
end proc

とかになりますね。(数値指定もいらないし、誤差も出ません。)

ついでに、マクロの1行目のお約束、

if @hwnd = 0 then exit proc

を書かなかったことにも気づきましたが、使う人が目的がわかっている場合なの
で、まいっか〜。(これがないと、文書ウィンドウがひとつもないときにエラー
メッセージが出ます > pavlov さん。


ヘッダのみ表示
順番に表示(No. 333 から)


メールアドレスを表示するにはURLの後ろに &m=bec334d8 をつけてください。
ユーザー フォーラム一覧

http://www2k.biglobe.ne.jp/~araken/
http://0ban.com/araken/