gpt4 book ai didi

delphi - 使用 Delphi 在 Canvas 上每行一个字符绘制居中和中间文本

转载 作者:行者123 更新时间:2023-12-02 20:21:00 29 4
gpt4 key购买 nike

我需要在框的中心绘制文本。文本必须水平对齐,每行一个字符。

我附上了一个带有字符串“class”的示例。

enter image description here

我可以绘制单个字符,但我希望有一种更快的方法。

最佳答案

procedure DrawVert(Canvas: TCanvas; Box: TRect; const Text: string);
var
i: Integer;
s: string;
R: TRect;
begin
s := '';
for i := 1 to Length(Text) do
s := s + Text[i] + ' ';
R := Rect(0, 0, 1, 0);
Canvas.TextRect(R, s, [tfCalcRect, tfNoClip, tfWordBreak]);
Box.Left := Box.Left + (Box.Right - Box.Left - R.Right) div 2;
Box.Top := Box.Top + (Box.Bottom - Box.Top - R.Bottom) div 2;
Box.Right := Box.Left + R.Right;
Box.Bottom := Box.Top + R.Bottom;
Canvas.TextRect(Box, s, [tfWordBreak]);
end;

为了测试,让 PaintBox1 是我们要绘画的盒子

procedure TForm1.Button1Click(Sender: TObject);
begin
DrawVert(PaintBox1.Canvas, PaintBox1.Canvas.ClipRect, 'CLASS TEST');
end;

关于delphi - 使用 Delphi 在 Canvas 上每行一个字符绘制居中和中间文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128501/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com