DBから取得したデータをテキストボックスにセットするプログラムを作成しています。データをセットしたら、区切り線”****”を1行に端から端までセットするのですが、区切り線の長さを取得するにはどうすればいいですか?長さが取得できればSTRING(数,"*")でセット出来るのですが。過去歴探しましたが、よく分かりませんでした。もし載ってたらごめんなさい。
> 1行に端から端までセットするのですが、区切り線の長さを取得するには> どうすればいいですか?長さが取得できればSTRING(数,"*")でセット出来るのですが。単に1行に表示する最大文字数に合わせればいいだけでは。テキストボックスにスクロールがなくて、テキストボックスの幅に合わせたいならその幅に表示できる文字数を求めればいいだけです。(TextWidth メソッド 参照)>過去歴探しましたが、よく分かりませんでした。もし載ってたらごめんなさい。一応形だけちょこっと見たと言う事ですか。会社の看板を背負って投稿している事をお忘れなく。文字を中央になるように算出 - みかん 08/09/02-12:10No.12996 http://www.cman.jp/network/support/go_access.cgi
> 単に1行に表示する最大文字数に合わせればいいだけでは。その最大文字数を求めたいのです。Formの大きさを使用するPCの画面によってResizeさせますので、テキストボックスの幅もそれに合わせて変わります。セットする文字数も短いのもあれば、長いのもあります。もしテキストボックスの幅よりも短いデータばかりの時、Textwidthでは区切り線が揃わなくなるのではないのですか?区切り線はテキストボックスの幅、ぴったりに全て出力したいのですけど。
> 揃わなくなるのではないのですか?区切り線はテキストボックスの幅、ぴったりに全て> 出力したいのですけど。回答を読んだの...。最初の1行だけ読みました...。 て言わないでね。それとも下記の計算ができないって事ですか?>テキストボックスにスクロールがなくて、テキストボックスの幅に合わせたいなら>その幅に表示できる文字数を求めればいいだけです。>(TextWidth メソッド 参照)幅25cm の弁当箱(テキストボックス) におにぎり(文字)が横にいくつ入るでしょうか?おにぎりの大きさは、ものさし(TextWidth メソッド) で測りなさい。(最初の質問には弁当箱の大きさが色々変わるとは書いていないのでその辺は考慮していない)ものさしがなくても、デザイン画面で、* を10個並べた時にテキストボックスのサイズをその幅に合わせれば、* 1個の幅が解るのだから、テキストボックスの幅 ÷ * 1個の幅 =テキストボックスの幅一杯に並ぶ * 数という式がなりたちませんか?但し、上記の測定時には、テキストボックスの枠の分を考慮する必要があります。その辺は、フラットにして枠線なしで試すとかLabelでAutoSize = Trueで測定するとか。(プログラムの問題と言うより算数の問題のようですね)
> 区切り線はテキストボックスの幅、ぴったりに全て> 出力したいのですけど。幅がXの箱に幅がYの文字”*”は何個入るでしょう?って問題に言い換えることができるのでは?Xは毎回取得すればいいし、Yは文字が決まってるのであらかじめ判るはずです。
> Xは毎回取得すればいいし、Yは文字が決まってるのであらかじめ判るはずです。花ちゃん、琴さんヒントありがとうございました。For文でテキストボックスの文字数(textwidth)が幅以上になるまで、"*"文字を加算しラインを引くのを作ってみたのですが、やはりテキストボックスぴったりには引けないんですよね。算出した値と表示された感じでみるとあと少し*が足りない・・。だから文字のフォントとか何かが影響しているのかなあとAPI使うのかなと難しく考えてしまいましたが、ヒントで考え方はいいと分かりましたので、標準EXEで簡単なものを作ってみましたら、これが出来るんですよね。やはりこの対象にしたテキストボックスは、拡張したACTIVEXなので、これ自体に何かしかけがあるんだと考えが絞りこめました。どうもどうもありがとうございました。でも花ちゃん少しきつくて怖い・・