如何在Canvas上直接输出特殊符号, 如 ε ,γ ,σ? ? ? (运行环境:英文Windows XP) (100分)

  • 主题发起人 主题发起人 yhli
  • 开始时间 开始时间
Y

yhli

Unregistered / Unconfirmed
GUEST, unregistred user!
请高手指点迷津:
如何在Canvas上 直接 输出特殊符号, 如 ε,γ,σ ???
(间接的方式,我想,借助于图像格式, 将这些符号作为图像导入也是可以的.)
 
Form1.Canvas.TextOut(10,10,'α');
 
谢谢QuickSilver
但是在Form1.Canvas.TextOut(10,10,text)中的Text位置处根本无法输入或显示这些特殊符号,
是不是因为我的WindowsXP是英文的原因???
 
Reply to Mr.QuickSilver:
在Form1.Canvas.TextOut(10,10,text)中的Text位置处,输入法软键盘也无法输入特殊符号.
 
canvas.textout(1,1,'@');
应该可以的啊!
 
'α' < > '@'
OR
Form1.Canvas.TextOut(10,10,'α') < > Form1.Canvas.TextOut(10,10,'@').
 
或许是字体的问题吧?
 
'α'是2字节的,不是特殊字符,你先转换为Unicode码看看
var
Str: WideString;
begin
Str:='α';
Form1.Canvas.TextOut(10,10,Str)
 
各位恐怕没有用过英文版的XP或windows2000之类的吧,这些特殊符号不太好输入
要不你装个英文版的officeXP后再试试
 
首先谢谢各位.
但首先在Delphi的IDE环境里就无法正确显示 'ε,γ,σ', 而是乱码.
 
就是因为不能正确显示 'ε,γ,σ', ,所以才让你转化为Unicode码看看,能不能显示。
 
var
Str: WideString;
begin
Str:='α';
[brown]在Delphi的IDE环境里就无法在(Str:=) ' ' 中输入 'α' or 'ε,γ,σ'?[/brown]
Form1.Canvas.TextOut(10,10,Str)
 
To yhli
你用的不是Delphi6吧
 
我在Delphi6 和Delphi7 中均无法输入, 其中原因之一也许是用的是英文WindowsXP,
另外也许因为这些符号是特殊符号, Office中称为Symbol.
 
我认为你说得没错。你的系统要支持中文或其它UNICODE字体才行。
然后你可以这样:
Canvas.Font.Name := '宋体';//UNICODE字体
Canvas.Font.Charset := DEFAULT_CHARSET;
Canvas.TextOut(10,10'α');
 
不能输入可以把他转为asii码呀
比如
var
Str:string;
Str1:widestring;
begin
SetLength(Str,2);
Str[1]:=#35;
Str[2]:=#38; // 这是我乱写的,家里没装delphi,你可以在中文系统下看看 'α' 的
// 编码是多少,然后替换
Str1:=Str;
 
To Bxch_1000
我想您提供的思路可能是目前最好的解决方案, 稍后,我将试一试, 问题讨论到此为止结束吧.
我给您加70点积分, 希望不要介意, 并给其他关注这个问题的朋友各加5点,微不足道, 仅表谢意.

再次谢谢各位!
 
后退
顶部