VisualBasic6.0 SP4の環境で作成した
プログラムをWin2000で動かすと特定の端末のみ
テキストボックスの一部の文字が欠けたり、
オブジェクトの位置自体がずれたような表示になってしまうのですが、
どうしてでしょうか??
ほとんどの端末ではうまく動いています。
Win2000のマシンでも正常なのと違うのがあるなら、
画面のプロパティ>デザインで、フォントサイズが同じかどうか
確認したほうがいいと思います。
「Win2000と他のOSで違う」なら…
確かWinNT等のWin2000以前のOSと、Win2000では、システムフォントの
扱いが多少違っていたと思います(うろ覚えだけど)ので、
その場合はFormの設計を調整する必要があるかもしれません。
回答ありがとうございます。
OSはWin2000のみなのですが、正常に表示される端末と
文字が欠けてしまう端末があるんです。
SPも同じバージョンが入っているはずなのですが・・・。
画面のプロパティのフォントサイズは、どうでした?
全端末、同じでしたか?
プロパティのフォントは同じでした。
どうやら文字が欠けているというより
テキストの設定自体が変更されてるような
感じにみえます。
テキストの位置が動いているのかMAXレングス等
の設定が変更されてしまっているのか
よく分からないのですが・・・。
テキストにセットしたい変数には
はちゃんと設定したい文字列
が格納されているのですが。
うーん…
可能であれば、想定外の動作をするマシン上でデバッグしてみるか、
それが不可能ならばソースコードにデバッグ用のテキストログか何かを
吐き出す機能をチョロチョロッと付けて、TextBoxのプロパティを
実際に見てみるのが早いかもしれませんね。
(面倒なら一時的にラベル貼り付けてもいいかもですが、ログ出力できれば
後々デバッグで便利かもしれませんよ…力業ですけどね)
それでプロパティが想定外の値になっていることが確認できれば
プログラムの不具合の可能性が高いでしょうし、切り分けは出来るかも
しれません。
(何か他に気づいた方が書き込んで下されば有難いんですけどね(汗))
VBで使用するフォントは一部VBランタイムに収録されているようです
もしかしたらランタイムのバージョンが違うとか可能性ありませんか?
Win2000とWinXP(もしくはその他OS)ではもちろんフォントは変わってきますが・・・今回は全部Win2000のようですしね
たとえば、ランタイムのセットアップが正しく行われていなかったために、
VB6JP.DLL がロードされず、異なるフォントがロードされていたりとか。
http://madia.world.coocan.jp/vb/vb_bbs2/200407_04070064.html
オブジェクトの位置がずれるとおっしゃっていることから...
画面のプロパティ→「設定」→「詳細」で、
「大きいフォント」などが指定されていて
96DPI以外になっていませんか?
みなさんいろいろな情報ありがとうございます。
ランタイムはVB6JP.DLL 等のファイルのバージョンを
確認していましたが、おかしくなる端末も正常に
動く端末も同じバージョンが正しくセットアップされているようでした。
DLLで動いているのでデバッグするのは難しいです。
フォント等をもう少し細かく調べてみます。
う〜ん。となると、そがっちさん/もげさんらが書かれている
OS 側のフォント設定(Screen.TwipsPerPixelX値)の違いぐらいしか
思いつきません。
> DLLで動いているのでデバッグするのは難しいです。
App.LogEvent メソッドを仕込んで、イベントログとして出力するとか。
グラフィックカードの設定で拡大表示等をしていませんか?
| ツイート |
|