1

目前在 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;
4

1 回答 1

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;
于 2013-10-19T10:36:56.967 回答