加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 为什么tfVerticalCenter和tfBottom在TCanvas.TextRect

发布时间:2020-12-15 09:33:15 所属栏目:大数据 来源:网络整理
导读:请考虑以下代码: procedure TForm1.PaintBox1Paint(Sender: TObject);var vRect : TRect; vFormat : TTextFormat; vStr : string;begin vStr := 'This is some text'; vRect := rect(10,10,50,130); vFormat := [tfCenter,tfVerticalCenter,tfWordBreak]; P
请考虑以下代码:

procedure TForm1.PaintBox1Paint(Sender: TObject);
var
  vRect : TRect;
  vFormat : TTextFormat;
  vStr : string;
begin
  vStr := 'This is some text';
  vRect := rect(10,10,50,130);
  vFormat := [tfCenter,tfVerticalCenter,tfWordBreak];
  PaintBox1.Canvas.Rectangle(vRect);
  PaintBox1.Canvas.TextRect(vRect,vStr,vFormat);
end;

我希望这样的事情

+--------+
|        |
|        |
|This is |
|  some  |
|  text  |
|        |
|        |
+--------+

但我明白了

+--------+
|This is |
|  some  |
|  text  |
|        |
|        |
|        |
|        |
+--------+

tfBottom格式也是如此.水平文本格式(tfLeft,tfRight,tfCenter)按预期工作,但垂直格式不工作.有谁能解释一下?

解决方法

我不太确定,但只有在设置了单行时才允许使用VerticalCenter. 这是因为Canvas依赖于本机Windows功能.如果您使用Windows DrawText功能,您将看到此限制. 如果你需要垂直中心,你必须自己做数学

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读