Canvas.TextOut为什么会显示乱码? ( 积分: 0 )

  • 主题发起人 主题发起人 szdnc
  • 开始时间 开始时间
S

szdnc

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么会显示乱码?
procedure TForm1.Button2Click(Sender: TObject);
var
Px,Py:Integer;
i,j:Integer;
Text_Spacing:Integer;
Txt:String;
begin
px:=100;
py:=100;
j:=0;
Text_Spacing:=12;
Txt:='中华人民共和国';
for i:=1 to Length(Txt) do
begin
Canvas.TextOut(Px+j, Py, Txt);
j:=j+Text_Spacing;
end;
end;
 
将Tcanvas的font属性设置正确(正确的字体,正确的编码)。
 
Txt:String;

改成
Txt:wideString;
 
你的txt是string类型,而中文是2个字符存储的
所以你用txt来显示的时候只显示一个字符,也就是半个中文字,当然就是乱码了
像楼上说的,改成widestring类型
 
后退
顶部