• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:TStringGridにて・・・)

TStringGridを使用してデータを表示する際に、表示データが途中で途切れる問題について

このQ&Aのポイント
  • DELPHI6.0でTStringGridを使用してDBから取得した情報を表示させようとしています。
  • 取得データが長い項目について、表示部分の長さが足りないため、表示データが途中で途切れてしまいます。
  • セルの長さを自動的に調整する方法があるのかについて教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • honiyon
  • ベストアンサー率37% (331/872)
回答No.1

こんにちは、honiyonです。   確か自動調整する機能はありませんので、自身で毎回ColWIdthsを使用して設定する必要があります。   表示するのに必要なWidth値は確か Canvasクラスの、TextWidthというメソッドで取得する事が出来ます。   そのカラム(縦)の中で最も長い文字列を取得し、TextWidthで計算して ColWidthsを設定します。   尚、TextWidthが計算に使用する文字幅等は、Canvas内のどこかにフォントを設定する場所があったと思います。そこのフォントを元に計算されます。   TStringGridクラス内にCanvasがあれば良いのですが、無い場合は計算のためにTCanvasクラスを作る必要があります。この際、TStringGridが表示に使用しているフォントと、TextWidthが計算に使用するフォントがずれないように注意しましょう。   参考になれば幸いです(.. #うろ覚えなので間違っていたらすいません汗

jyopper
質問者

お礼

ありがとうございます。 上記のとおり記述すると設定することができました。 本当にありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 同一列内のセルを結合して表示したい

    DBから取得したデータで同じ項目データはテーブル で表示する際に、同一列内のセルをrowspanで結合し て見栄えをよくして表示させたいのですが、どうした らいいでしょう? http://www.atmarkit.co.jp/fdotnet/dotnettips/092joincells/joincells.html と同じことをPHPで実現させたいのです。 どなたかご教授願います。

    • 締切済み
    • PHP
  • DataGrid使い方検証中

    DBからのデータを一覧表として表示することを考えています。 表示は、DBからのデータを取得したものをそのまま表示することもありますが、好きなように加工して、好きな位置に表示することもあります。 今まではVB6で某社のACTIVEXを利用して行っていました。 .NETになってDataGridがいろんなことができるようになったという情報をもらったので、調べているのですが、いまいち欲しい情報が得られません。ということはできないのかなあ? やりたいこと 1、ただの表として、好きな位置に好きなデータを表示させる 2、セルに、DBと連動していない、ボタンや、チェックボックスを配置する その他色々あるのですが、とりあえず上記のやりたいことができれば、うれしいのですが。 できる場合は、方法も教えてください。

  • 年月日のうち月日だけ取得したい。

    DB2環境です。 あるカラムに年月日のデータとして、NUMERICで8桁のデータが 入っています。 たとえば20080214と入っている時、SQLで取得、表示する時には 単に0214と表示したいのですが、そのようなことは可能でしょうか?

  • エクセル関数について

    こんにちは。エクセルについて質問します。 社員No.を9桁にて付与しています。 セルに社員No.「5000」と入力したら、自動的に「000005000」と 前に「0」が付き、9桁で表示するにはどうしたら良いでしょうか?? また、セルの書式設定→表示形式→ユーザー定義で、種類に「000000000」(0が9個)表示は9桁でされますが、セルを選ぶと9桁には なってなく、パソコンから出てくるデータは全て9桁になってますので、社員No.を関数で検索するさい、一致しないんです。 社員No.「5000」と入力したら、「000005000」と自動的になり、 表示だけではなく、セルの文字自体が9桁になるようにお願いします。

  • DataGridの行番号

    クライアント:Windows2000 Professional VB.net 2003 .net初心者です。 .net標準のDataGridコントロールにDB(Oracle)より取得したデータを表示させようとしております。 その際に、DBの項目のほかに、行番号を「1」から順に昇順で振っていきたいと思っております。 プロパティの設定で出来るものと思っておりましたが、どうもそうでないようで、実現の方法をご存知の方、いらっしゃいましたら、宜しくご教授お願いします。

  • セルの値を1桁ずつ、テキストボックスへ

    幾つかの値が入力されたセルから1桁ずつ取り出して、テキストボックスへバラバラに表示させたいのですが・・・よろしくお願いします。 例えば1234567等の7桁の値が入力されたセルがあって、それを指定したテキストボックスへ1、2、3、4、5、6、7と7つのテキストボックスへ表示させたいのです。 セルからセルだったらMID(A1,1,1)で“1”を取得できますが、これをテキストボックスで取得したいのです。 事前にセルで取得してテキストボックスとリンクさせていたのですが、元のデータが変わるたびにやり直さないといけないので、テキストボックスから直接取得させたいのですが、何か良い方法がありましたら宜しくお願いします。

  • SPREAD編集不可について

    DBからデータをSPREADに表示しています。 表示したときに、SPREADのセルとかを編集できなくするようにするにはどうしたらよいですか?(ダブルクリック→Delete→消去 になってしまうので、こういう操作できないようにロックしたいです。) たぶん、SPREADのプロパティでできると思うんですが、いまいちよくわかりません。

  • Excel 折り返して全体を表示させても印刷すると切れる

    セルに入っているデータが列幅より出てしまうので、[折り返して全体を表示]させ 行の高さを自動調整しています。 ところが、画面上では全データが表示できるものの、いざ印刷するとなると 2行目以降が切れてしまう(表示されない)セルが複数あります。 このようなセルを、ビシっと表示させる方法はないのでしょうか。 尚、当然のことながら、列幅はこれ以上広げられません。

  • 印字のときだけ数字の桁オーバー #### が出る

    excel セル幅を数字の桁に自動で合わせる「列幅の自動調整」を使って 画面上では正常に表示させているのに、実際の印字で #### に なってしまうのはなぜ? ※OKWAVEより補足:「ブラザー製品」についての質問です。

  • エクセルについて

    データ入力する時、ナンバーが、常に2500-000で始まり、2500-000357とか2500-000347とかその後の数字が毎回変わるとき、下三桁の357とか、347だ入力して自動的に前に2500-000が入るようにしたいのですが、セルの設定のユーザー設定で出来たのでしょうか? やり方を教えてください。