プロジェクトの継続は次の場所で開始されました。
DBGrid(または他の同様の)列の幅をその内容に応じて自動調整/スケーリングするにはどうすればよいですか?
DBGridセルのテキストを中央に配置するための「Left」プロパティを計算するにはどうすればよいですか?
OnDrawColumnCellを呼び出し、Canvasを使用してグリッドのデフォルトの描画の代わりにテキストを書き込む場合、セルの中央に配置するときにテキストの位置をどのように計算できますか?
プロジェクトの継続は次の場所で開始されました。
DBGrid(または他の同様の)列の幅をその内容に応じて自動調整/スケーリングするにはどうすればよいですか?
DBGridセルのテキストを中央に配置するための「Left」プロパティを計算するにはどうすればよいですか?
OnDrawColumnCellを呼び出し、Canvasを使用してグリッドのデフォルトの描画の代わりにテキストを書き込む場合、セルの中央に配置するときにテキストの位置をどのように計算できますか?
より多くの可能性を備えたより簡単な方法は次のとおりです。
Canvas.TextRect(Rect,s,[tfCenter,tfVerticalCenter,tfSingleLine]);
しないでください。DrawText
/を使用してテキストをペイントし、formatパラメーターDrawTextEx
で指定します。長方形の中央にテキストマルチラインを描画するDT_CENTER
も参照してください。
または、自分で計算したい、または計算する必要がある場合:
procedure DrawCenteredText(Canvas: TCanvas; const S: String; R: TRect);
var
Left: Integer;
begin
Left := R.Left + (R.Right - R.Left - Canvas.TextWidth(S)) div 2;