如何在一个区域放置textout?

时间:2013-10-19 10:34:26

标签: delphi delphi-xe2

目前在TGraphicControl组件中使用canvas.textout来显示一些文本,但我需要将文本留在某个区域内。有没有像我可以使用的自动换行的属性..或者设置文本输出区域的方法?像这样

var
  r: TRect
  s: string
begin
  s := 'some long text that takes up about 3-4 lines';
  r.Left := 10;
  r.Top := 10;
  r.Right := 20;
  r.bottom := 50;
  textout(r,s);
end;

1 个答案:

答案 0 :(得分:3)

您可以使用DrawText功能:

procedure TForm1.FormPaint(Sender: TObject);
const
  S = 'This is some sample text. It is very long. Very long, indeed.' +
      'Very, very, long.';
var
  R: TRect;
begin
  R := Rect(100, 100, 200, 200);
  DrawText(Canvas.Handle, S, length(S), R, DT_WORDBREAK);
end;