疯了,Label怎么对连续的数字、英文自动换行啊啊

DelisPhi 2012-04-19 12:56:00
因为Label里面的内容是动态的,而且要求字体可变,我无法得知在什么时候加#13#10。但是……坑爹啊!!Label你不能这样。。中文一点问题没有的说,数字和英文。。擦。。
...全文
376 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
山东蓝鸟贵薪 2012-04-19
  • 打赏
  • 举报
回复
#10#13
是回车换行的
我看见佛 2012-04-19
  • 打赏
  • 举报
回复
+#10就可以实现换行。
其它控件的WordWrap=TRUE就可以实现自动换行。但LABEL试了下,只是加长的行间的距离。
不知道你要实现什么效果,如果非要这个功能的话可以通过计算字符串的字节数并进行拆分来实现这个功能,但这样做起来比较繁琐,或用LEFTSTR这类函数根据长度截取。
早安您好 2012-04-19
  • 打赏
  • 举报
回复
label1.AutoSize:= False;
Label1.WordWrap:= True;
gobiz 2012-04-19
  • 打赏
  • 举报
回复
仔细研究一下VCL的源码,你就会发现,凡是自动换行的,其实都是内部计算出来的。

对于TLabel,你可以通过先设置Label.Canvas.Font,然后通过Label.WidthLabel.Canvas.TextWidthLabel.Canvas.TextHeight等属性来判断应该在字符串的哪个位置来添加#13#10来实现换行。

祝你成功!
山东蓝鸟贵薪 2012-04-19
  • 打赏
  • 举报
回复
#10#13
示例:
label1.caption:='这是一个测试'+#1#13+
'信息的,内容如下:'+#1#13+
'其实就是TEST';

5,379

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧