TImage中的中文显示问题?请高手指点!最后50分了(50分)

  • 主题发起人 主题发起人 goodfox2002
  • 开始时间 开始时间
G

goodfox2002

Unregistered / Unconfirmed
GUEST, unregistred user!
在Timage控件中用textwidth计算宽度,然后设定Timage的width大于设定宽度(+100)。
但是文字输出时总是不能完全看见。
如:
Image1.canvas.textout(0,0,'中国移动通信');
“信“字只看到一半???!!!
好像TLabel的AUTOSIZE=TRUE时也有这个问题,怎么解决?
 
Image1.canvas.textout(0,0,'中国移动通信 ');
即在通信后面输入几个空格就可以了
 
好办法!不过我还想知道为什么出现这个问题!
 
我实验了以下,没有这个问题,
你能把代码写出来吗?
我不知到你是如何使用
[red]在Timage控件中用textwidth计算宽度,然后设定Timage的width大于设定宽度(+100)。[/red]
 
huazai的方法可行,如下办法也可以试一试
Image1.canvas.Font.Name:=''(用汉字字体)
这个问题在一般的label上面也会出现,尤其是win2000系统
 
我同意 luyear 的说法
关键是字符集的事,
我已经试验过了,完全可以解决!
 
部分代码如下:
MyImage[count]:=Timage.Create(self);
MyImage[count].Parent:=Panel4;
MyImage[count].Transparent:=true;
MyImage[count].Left:=100;
MyImage[count].Top:=100;
MyImage[count].Width:=MyImage[count].Canvas.TextWidth(GESHI.FieldByName('NAME').Asstring)+100;
MyImage[count].Height:=MyImage[count].Canvas.textHeight(GESHI.FieldByName('NAME').Asstring)+100;
MyImage[count].Canvas.TextOut(0,0,GESHI.FieldByName('NAME').Asstring);
btw:我想有可能不是代码问题。不知是不是d6的设置问题。我的桌面的label控件的autosize全部要设定为false!!
要不然也会不见后面一小部分。
 
主要是你的字体问题,不同的字体可能出现不同的效果.
 
Canvas.Font 字体选择宋体,字符集选择 gb2312
 
本来以为后面加空格就可以。可是试一下居然不行!!!!???
字体,字符集是根据字形对话框得出的。送体黑体多没有效果!!!
gb2313都试了,还是无效。是不是win2000server和d6的设置有问题?
请各位帮帮忙呀。
 
问题解决了,原来是在设置了Canvas.Font后TImage的高度和宽度就不好改变了。
我也不知道为什么,不过我调换顺序后就正常了。
谢谢各位!
 
后退
顶部