如何用左对齐在画布上绘制文字



我想在画布上绘制一个矩形,我想用文本填充它。我已经尝试了以下代码,但仅通过正确对齐才成功。

有人可以帮我吗?如何用左对齐在画布上绘制文字?

{Header Table}
SetStyleHuruf(FCanvas, fsBold, 12, clWhite, 'Maiandra GD');
Brush.Color := color;
Rectangle(cx+50, cy-50, cx+370, cy - 30);
TextOut(round(cx + 215), cy-50, Name);`

查看TextOut的定义:

procedure TextOut(X, Y: Integer; const Text: string); override;

帮助中的描述说:

从画布上写一个字符串,从点(x,y),...

开始

因此,修改您的代码以在X坐标处绘制文本,该X坐标靠近矩形的左边框,而不是右侧。例如:

TextOut(round(cx + 215), cy-50, Name);

从矩形的左边框中输出文本5像素

TextOut(round(cx + 55), cy-50, Name);

btw,假设cx是一个整数,您无需使用Round()

而不是文本,我将使用drawText函数,这在Microsoft网站上进行了说明

绘制函数在指定的矩形中绘制格式化的文本。它根据指定的方法(扩展选项卡,为字符,断路线等辩护)格式化文本。 要指定其他格式选项,请使用drawTextex函数。

在这里您找到了一个很好的示例

最新更新