tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板 [ツリー表示へ]   [Home]
一括表示(VB6.0)
タイトルテキストボックスの文字数
記事No13096
投稿日: 2008/10/06(Mon) 15:19
投稿者たぬき
DBから取得したデータをテキストボックスにセットするプログラムを
作成しています。データをセットしたら、区切り線”****”を
1行に端から端までセットするのですが、区切り線の長さを取得するには
どうすればいいですか?長さが取得できればSTRING(数,"*")でセット出来るのですが。
過去歴探しましたが、よく分かりませんでした。もし載ってたらごめんなさい。

[ツリー表示へ]
タイトルRe: テキストボックスの文字数
記事No13098
投稿日: 2008/10/06(Mon) 15:41
投稿者花ちゃん
> 1行に端から端までセットするのですが、区切り線の長さを取得するには
> どうすればいいですか?長さが取得できればSTRING(数,"*")でセット出来るのですが。

単に1行に表示する最大文字数に合わせればいいだけでは。
テキストボックスにスクロールがなくて、テキストボックスの幅に合わせたいなら
その幅に表示できる文字数を求めればいいだけです。
(TextWidth メソッド 参照)

>過去歴探しましたが、よく分かりませんでした。もし載ってたらごめんなさい。
一応形だけちょこっと見たと言う事ですか。


会社の看板を背負って投稿している事をお忘れなく。
文字を中央になるように算出 - みかん 08/09/02-12:10No.12996
http://www.cman.jp/network/support/go_access.cgi

[ツリー表示へ]
タイトルRe^2: テキストボックスの文字数
記事No13105
投稿日: 2008/10/06(Mon) 18:28
投稿者たぬき
> 単に1行に表示する最大文字数に合わせればいいだけでは。
その最大文字数を求めたいのです。

Formの大きさを使用するPCの画面によってResizeさせますので、
テキストボックスの幅もそれに合わせて変わります。
セットする文字数も短いのもあれば、長いのもあります。
もしテキストボックスの幅よりも短いデータばかりの時、Textwidthでは区切り線が
揃わなくなるのではないのですか?区切り線はテキストボックスの幅、ぴったりに全て
出力したいのですけど。

[ツリー表示へ]
タイトルRe^3: テキストボックスの文字数
記事No13106
投稿日: 2008/10/06(Mon) 18:33
投稿者花ちゃん
> 揃わなくなるのではないのですか?区切り線はテキストボックスの幅、ぴったりに全て
> 出力したいのですけど。

回答を読んだの...。

最初の1行だけ読みました...。 て言わないでね。
それとも下記の計算ができないって事ですか?

>テキストボックスにスクロールがなくて、テキストボックスの幅に合わせたいなら
>その幅に表示できる文字数を求めればいいだけです。
>(TextWidth メソッド 参照)

幅25cm の弁当箱(テキストボックス) におにぎり(文字)が横にいくつ入るでしょうか?
おにぎりの大きさは、ものさし(TextWidth メソッド) で測りなさい。
(最初の質問には弁当箱の大きさが色々変わるとは書いていないのでその辺は考慮していない)

ものさしがなくても、デザイン画面で、* を10個並べた時にテキストボックスのサイズを
その幅に合わせれば、* 1個の幅が解るのだから、
テキストボックスの幅 ÷ * 1個の幅 =テキストボックスの幅一杯に並ぶ * 数
という式がなりたちませんか?
但し、上記の測定時には、テキストボックスの枠の分を考慮する必要があります。
その辺は、フラットにして枠線なしで試すとかLabelでAutoSize = Trueで測定するとか。
(プログラムの問題と言うより算数の問題のようですね)

[ツリー表示へ]
タイトルRe^3: テキストボックスの文字数
記事No13107
投稿日: 2008/10/06(Mon) 18:49
投稿者
> 区切り線はテキストボックスの幅、ぴったりに全て
> 出力したいのですけど。

幅がXの箱に幅がYの文字”*”は何個入るでしょう?

って問題に言い換えることができるのでは?
Xは毎回取得すればいいし、Yは文字が決まってるのであらかじめ判るはずです。

[ツリー表示へ]
タイトルRe^4: テキストボックスの文字数
記事No13115
投稿日: 2008/10/07(Tue) 18:48
投稿者たぬき
> Xは毎回取得すればいいし、Yは文字が決まってるのであらかじめ判るはずです。
花ちゃん、琴さんヒントありがとうございました。

For文でテキストボックスの文字数(textwidth)が幅以上になるまで、"*"文字を加算し
ラインを引くのを作ってみたのですが、やはりテキストボックスぴったりには引けないんですよね。
算出した値と表示された感じでみるとあと少し*が足りない・・。
だから文字のフォントとか何かが影響しているのかなあとAPI使うのかなと難しく考えて
しまいましたが、ヒントで考え方はいいと分かりましたので、標準EXEで簡単なものを
作ってみましたら、これが出来るんですよね。
やはりこの対象にしたテキストボックスは、拡張したACTIVEXなので、これ自体に何か
しかけがあるんだと考えが絞りこめました。
どうもどうもありがとうございました。
でも花ちゃん少しきつくて怖い・・




   

[ツリー表示へ]