- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi 10 Seattle中的画布上绘制字符
Delphi 10 Seattle中的画布上绘制字符
使用VCL,可以使用Windows DrawText API在画布上绘制字符。
procedure TForm1.FormPaint(Sender: TObject);
const
Text = '你好世界';
var
R: TRect;
begin
R := TRect.Create(0, 0, 100, 100);
Self.Canvas.FillRect(R);
DrawText(Self.Canvas.Handle, PChar(Text), Length(Text), R,
DT_VCENTER Or DT_SINGLELINE or DT_CENTER);
end;
在FireMonkey中,使用TTextLayout在Canvas上绘制字符。
uses
FMX.TextLayout;
procedure TForm1.FormPaint(Sender: TObject; Canvas: TCanvas;
const [Ref] ARect: TRectF);
const
Text = '你好世界';
var
Layout: TTextLayout;
begin
Layout := TTextLayoutManager.DefaultTextLayout.Create;
try
Layout.BeginUpdate;
Layout.TopLeft := TPointF.Create(0, 0);
Layout.MaxSize := TPointF.Create(Self.Width, Self.Height);
Layout.Font.Size := 30;
Layout.Color := TAlphaColorRec.Brown;
Layout.WordWrap := False;
Layout.HorizontalAlign := TTextAlign.Center;
Layout.VerticalAlign := TTextAlign.Center;
Layout.Text := Text;
Layout.EndUpdate;
Layout.RenderLayout(Canvas);
finally
Layout.Free;
end;
end;