掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
QuickReportで枠内に入るように文字の大きさ調整 (ID:29005)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi2007とQuickReportで印刷してるんですが不可解な現象が発生します。 OSはWindowsXPです。 QRDBTextに文字列を印字するのですが文字数が多いと自動的に枠内で収まるようにフォントサイズを小さくしていくルーチンを作りました。 //========================================================================== // 印刷文字の大きさ調整 // I: Sender オブジェクト // dat 印字内容 // dfsize デフォルトフォントサイズ // maxwidth 最大テキスト幅 //========================================================================== procedure QRTextAdjust(Sender:TObject; dat:string; dfsize:word; maxwidth:integer); TQRDBText(Sender).Font.Size:=dfsize; TQRDBText(Sender).Caption:=dat; while (TQRDBText(Sender).Width > maxwidth) do begin TQRDBText(Sender).Font.Size:=TQRDBText(Sender).Font.Size - 1; end; end; で、プレビューだと長い文字列くるとwhile分のTQRDBText(Sender).Widthがフォントサイズマイナス1する毎に小さくなってちょうどいい大きさで印字されます。 ところが実際の印刷だとフォントサイズマイナス1していってもTQRDBText(Sender).Widthの値が最初の値から全く変わらずに無限ループに入ります。 無限ループはサイズ6以下になったらbreakとか回避は出来るのですが、それだとちょうどいいサイズに印刷の時だけなりません。 QuickReportって昔に比べてバグが多いですがこれもバグなのでしょうか?
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.