Nih*_*ila 5 delphi unicode tstringgrid stringgrid
只是为了测试我将Delphi 7程序转换为Delphi XE 5的难度,我在Delphi 7上编写了简单的应用程序 - 在Form上放置了TStringGrid,并在表单上添加了代码:
procedure TFMain.FormCreate(Sender: TObject);
begin
With StringGrid1 do
begin
Cells[0,0]:='????€';
end;
end;
Run Code Online (Sandbox Code Playgroud)
(实际上它写为Cells [0,0]:='ce ??€',但我预计会这样做).编译,构建,运行,没有Unicode,原因.然后在Delphi XE 5中重新打开项目,再次将行更改为Cells [0,0]:='čęжэ€',编译,构建,运行 - 并且没有Unicode(类似于čę|||)!这对我来说很奇怪.在Delphi Xe 5上使用相同代码从零开始构建新项目,同样的TStringGrid正在按预期工作.我知道这里有一些简单的技巧,也许是项目设置中的一些变化,但我不能谷歌...也许有人可以提供帮助?
最好的祝福.
Delphi 7使用的默认字体是MS Sans Serif.在Unicode Delphi下使用此字体时,字符串网格控件似乎不能正确地使用该字体绘制文本.许多其他控件将以该字体正确绘制文本.但由于某种原因,字符串网格控件无法设法这样做.
当您将旧项目升级到XE5时,您继承了Delphi 7的默认值.当您在XE5中创建一个新项目时,我认为Tahoma的默认字体是不同的,并且字符串网格绘制正确地显示了该字体中的西里尔字母.
您可以使用Tahoma或Segoe UI等其他字体解决此问题.你肯定不想使用MS Sans Serif.报表视图样式中的列表视图将是另一个不错的选择.尤其是因为它是本机平台控件.
我必须承认,我真的不明白为什么字符串网格控件表现不佳.如果其他人可以对此有所了解,那将是很好的.
| 归档时间: |
|
| 查看次数: |
841 次 |
| 最近记录: |