4

プロジェクトの継続は次の場所で開始されました。

DBGrid(または他の同様の)列の幅をその内容に応じて自動調整/スケーリングするにはどうすればよいですか?

DBGridセルのテキストを中央に配置するための「Left」プロパティを計算するにはどうすればよいですか?

OnDrawColumnCellを呼び出し、Canvasを使用してグリッドのデフォルトの描画の代わりにテキストを書き込む場合、セルの中央に配置するときにテキストの位置をどのように計算できますか?

4

2 に答える 2

5

より多くの可能性を備えたより簡単な方法は次のとおりです。

Canvas.TextRect(Rect,s,[tfCenter,tfVerticalCenter,tfSingleLine]);
于 2012-11-08T19:14:16.237 に答える
5

しないでください。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;
于 2012-11-08T19:02:33.917 に答える