And*_*and 11
是的,你是对的.不过,我建议你升级到Delphi 2009或更高版本,其中VCL具有完全的Unicode支持,一切都更容易.
无论如何,你可以做到
procedure TMyControl.Paint;
var
S: WideString;
r: TRect;
begin
inherited;
r := ClientRect;
S := 'This is the integral sign: '#$222b;
DrawTextW(Canvas.Handle, PWideChar(S), length(S), r, DT_SINGLELINE or
DT_CENTER or DT_VCENTER or DT_END_ELLIPSIS);
end;
Run Code Online (Sandbox Code Playgroud)
在旧版本的Delphi中(我认为.代码在我的虚拟Windows 95机器中编译Delphi 7,但我看不到文本.这是因为我认为Windows 95太旧了.)
更新
如果要支持非常旧的操作系统,如Windows 95和Windows 98,则需要使用TextOutW
而不是DrawTextW
,因为后者未实现(源).TextOut
是那么强大那么DrawText
,所以你需要手工计算的位置,如果你想中心矩形中的文本,例如.
procedure TMyControl.Paint;
var
S: WideString;
begin
inherited;
S := 'This is the integral sign: '#$222b;
TextOutW(Canvas.Handle, 0, 0, PWideChar(S), length(S));
end;
Run Code Online (Sandbox Code Playgroud)