如何知道一个字符串的物理长度,既像素长度(50分)

  • 主题发起人 主题发起人 flydragon0709
  • 开始时间 开始时间
F

flydragon0709

Unregistered / Unconfirmed
GUEST, unregistred user!
如何知道一个字符串的物理长度,既像素长度
 
Length(myStr)
你指的什么物理长度?
 
TCanvas.TextLength(String)
 
你要知道,每个字节在不同象素的显示器上实际物理长度是不同的。
你不会是想要知道这个吧?
 
iLength := xx.Canvas.TextWidth(myStr);

xx是字符串显示所在的可视组件,如Form1
 
你是要测输出的长度吧
Object.Canvas.TextWidth(STring)
 
像素长度跟字体有关。

我的方法:
创建一个Label,隐藏在某个组件下面不显示。设置该label的字体,并且设置
该label为autosize:=true;wordwrap:=false;设置caption为你的字符串,读取
label的width就可以了。

当然,还有更正规的方法,找找应该有的。
 
用的就是 Canvas.TextLength(String) 方法,但是要注意不同的字体,
长度是不一样的!
 
同意
TCanvas.TextLength(String)
 
TCanvas.font:='字体';
TCanvas.size:=x;
w:=TCanvas.TextLength(String);
ok!
 
呵呵,只有TextWidth和TextHeight
还有TCanvas.TextExtent
但是没有 TCanvas.TextLength(String);
 

Similar threads

回复
0
查看
1K
不得闲
回复
0
查看
1K
不得闲
回复
0
查看
894
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部