HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2009
1226
comesbox8未解決


co

リンク

2009/12/26(Sat) 00:30:14|NO.29512

mesboxでTAB文字を表示すると、場所によって長さが変わってしまいます。
メモ帳のように一定の長さで必ず表示する方法はないのでしょうか。



この記事に返信する


木村

リンク

2009/12/26(Sat) 03:13:48|NO.29515

 オブジェクト(mesboxやbuttonで召喚されるアレら)のフォントがメモ帳のフォントと
違う為にそうなってしまうのでしょう。
 解決法としてはオブジェクトのフォントをobjmode命令で変更する方法が考えられます。


sdim mm,1000 font "MS 明朝",20,3 objmode 2 mesbox mm,640,240,1

 最初にfontでウィンドウのフォントを指定、次に『objmode 2』でそのフォントを
オブジェクト用のフォントに指定します。objmodeはバッファを初期化しない限り永続する
効果なので、本来のフォントに戻したい時は『objmode 0』を一行加えてください。

 それと、以下は余談ですので参考に。
 メモ帳で使われる『MS ゴシック』体のように、文字の横幅が全角と半角のみのフォントは
これ例外にもいくつかあります。
(例)
 HG明朝B、HG明朝E、HG創英プレゼンスEB、MS 明朝、MS ゴシック、HGゴシックE、HGゴシックM、
HG創英角ゴシックUB、HG創英角ポップ体、HG行書体、HG教科書体、BatangChe、etcetc……
 これらのフォントを使えば、Windowsのデフォルトメモ帳と同じ文字の配置になると思います。



co

リンク

2009/12/26(Sat) 16:45:52|NO.29521


sdim mm,1000 font "MS 明朝",20,3 objmode 2 mesbox mm,640,240,1
では解決しません



atom16

リンク

2009/12/26(Sat) 18:18:45|NO.29522

常に一定の長さで表示するには,タブ文字をスペースで
置き換えるといいと思います。



co

リンク

2009/12/26(Sat) 19:31:50|NO.29524

>常に一定の長さで表示するには,タブ文字をスペースで
>置き換えるといいと思います。

いや、TAB文字を使いたいので。



Hatter

リンク

2009/12/26(Sat) 21:37:56|NO.29526

木村さんの提示されたスクリプトで解決しませんか?

もしかして、coさん、Tabに追い求めているのがTab自体が常に一定の文字数という事ですか?
メモ帳はそうではないんで、最初のスレに対してかすかにずれを感じますが....

一般的なエディタ表示例(Tabは4文字)
サンプルA
1. 1(2)
10. 2(2)
11. 3(2)
100. 4(2)
僕の考えるcoさんの表示例
サンプルA
1. 1(2)
10. 2(2)
11. 3(2)
100. 4(2)

だとしたら、Tabの目的に反するので難かしいですがしますが
1.読み込み時,文字入力時Tabをスペース文字に置換,保存時にスペースをTabに置換。
2.自作でmesbox命令みたいなエディットを作る。
という方法ぐらいしか思いつきません。



tsuka

リンク

2009/12/26(Sat) 22:31:18|NO.29528

リッチエディットを使ってみてはどうでしょう。
タブ幅の指定もできるはずです。



木村

リンク

2009/12/26(Sat) 22:36:41|NO.29530

 失礼しました。昨日は質問の意図を取り違えてしまったようでした。
 ですので、私なりに質問の意図する内容を考えてもう一度答えてみたいと思います。

①タブを入れて区切る事でデータの見栄えを良くしたいのだがタブの開始地点がずれる
②そもそも各タブの横幅自体がそれぞれちがっている

 coさんの意図がこの2つの内のどれかだと考えて以下は話を進めます。意図が違っていたら
指摘してください。

 まず、タブの仕様の説明から入ります。そもそもタブとは、ある一定の長さ毎に文字列を
整えるシステムです。決して、一定の横幅があるわけではありません。(α)

//例(α) font "MS ゴシック",32 mes "\t←のタブは半角8文字相当\n1234567890\nHei\t←のタブは半角8-3=5文字相当" //※『\t』はHSP内でのタブコード
 前回の質問で私が列挙したようなフォントでは、タブは半角8文字単位の幅の区切り毎に
打ち込まれます。
 ですので、半角8字以上の長さの単語の後にタブを入れた場合、次の入力先は
左端から8字目ではなく、その次の16字目になります。(β)

//具体例(β) mes "\t←:何も無ければ8字目からスタート\n12345678901234567890" mes "Welcome\t←:8字未満なので8字目からスタート\n12345678901234567890" mes "Interest\t←:8字以上になったので今度は次の16字目からスタートします" mes "UnitedKingdom\t←:8字以上16字未満なので同じく16文字目\n12345678901234567890" mes "TheUnitedKingdom\t←:16字以上なので今度は24字目スタートです"

 この仕様に従えば答えは簡単です。
①A,文字列の長さによって、タブの開始位置は変動する
②A,そもそも、タブの横幅は固定ではない

 これ以上はcoさんのタブに求めている用途が分からないので回答しかねます。
 タブに求めている用途を教えていただければ、もう少し詳しい回答ができるかもしれません。



tsuka

リンク

2009/12/26(Sat) 22:52:26|NO.29531

うむー。メモ帳ではしっかりと表示できてるとは不思議な・・・

>リッチエディットを使ってみてはどうでしょう。
普通のエディットでもできましたね。以下。

#define EM_SETTABSTOPS 0x00CB sendmsg hMesbox, EM_SETTABSTOPS, 1, 2



ONION software Copyright 1997-2025(c) All rights reserved.