如何在左对齐的画布上绘制文本?

时间:2016-06-29 07:33:56

标签: delphi shape delphi-2010

我想在画布上绘制一个矩形,我想用文本填充它。我已尝试使用以下代码,但只有正确对齐才能成功。

任何人都可以帮助我吗?如何在左对齐的画布上绘制文本?

{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);`

2 个答案:

答案 0 :(得分:2)

查看TextOut

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

帮助中的描述说明:

  

在画布上写一个字符串,从点(X,Y)开始,...

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

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

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

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

BTW,假设cx是一个整数,你不需要使用Round()

答案 1 :(得分:1)

我会使用在Microsoft网站here上解释的DrawText函数而不是textout而不是

  

DrawText函数在指定的矩形中绘制格式化文本。它根据指定的方法格式化文本(扩展选项卡,对齐字符,断行等)。   要指定其他格式选项,请使用DrawTextEx函数。

在这里,您可以找到一个很棒的example如何使用它