如果我直接传递值而不是来自另一个类或数据库的字符串值,为什么 Delphi Canvas.TextRect 打印一个字符串

问题描述 投票:0回答:2

如果我在 Delphi 11.3 中按如下方式传递文本,请帮助我找出为什么以下代码不起作用而相同的代码有效

 //Working
 var TextRect: TRect;
 var myText : String;

 Text := 'This is a test string';

 TextRect.Top   := 0;
 TextRect.Left  := 0;
 TextRect.Height:= 80;
 TextRect.Width := 200;

 Canvas.TextRect(TextRect, myText,[tfCenter, tfWordBreak]);

 //Not Working
 var TextRect: TRect;
 var myText : String;

 Text := myItemDescription.Text;

 TextRect.Top   := 0;
 TextRect.Left  := 0;
 TextRect.Height:= 80;
 TextRect.Width := 200;

 myPage.Canvas.TextRect(TextRect, myText,[tfCenter, tfWordBreak]);

 or even if I pass a string from a database  it doesn't work

谢谢

canvas vcl
2个回答
0
投票

我找到了一种让它工作的方法,但看起来这是一个需要报告的错误。

如果我将我的字符串传递到 myText 字符串中,那么它就可以工作了。

myText := String(ItemDescription.Text);

0
投票

你分配

Text := 'This is a test string';

然后你说

Canvas.TextRect(TextRect, myText,[tfCenter, tfWordBreak]);

myText 不是空的吗?

还有一个简单的打印文本的方法是:

Canvas.Pen.Color := clblack; Canvas.Font.Name := 'Arial'; Canvas.Font.Size := 8; Canvas.TextOut(0, 0, '这是我的文字');

© www.soinside.com 2019 - 2024. All rights reserved.