delphi – 为什么tfVerticalCenter和tfBottom在TCanvas.TextRect中没有按预期工作?

delphi – 为什么tfVerticalCenter和tfBottom在TCanvas.TextRect中没有按预期工作?,第1张

概述请考虑以下代码: 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 请考虑以下代码:

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功能,您将看到此限制. 如果你需要垂直中心,你必须自己做数学 总结

以上是内存溢出为你收集整理的delphi – 为什么tfVerticalCenter和tfBottom在TCanvas.TextRect中没有按预期工作?全部内容,希望文章能够帮你解决delphi – 为什么tfVerticalCenter和tfBottom在TCanvas.TextRect中没有按预期工作?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1266072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存