gpt4 book ai didi

delphi - 如何将 TStringGrid 从 Delphi 7 转换为 Delphi XE

转载 作者:行者123 更新时间:2023-12-03 15:08:25 25 4
gpt4 key购买 nike

为了测试将我的 Delphi 7 程序转换为 Delphi XE 5 有多难,我在 Delphi 7 上编写了简单的应用程序 - 将 TStringGrid 放置在 Form 上,并在窗体创建上添加了代码:

procedure TFMain.FormCreate(Sender: TObject);
begin
With StringGrid1 do
begin
Cells[0,0]:='čęжэ€';
end;
end;

(实际上它写为 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。报告 View 样式的 ListView 将是另一个不错的选择。尤其是因为它是 native 平台控件。

我必须承认,我并不真正理解为什么字符串网格控件表现不佳。如果其他人能够阐明这一点,那就太好了。

关于delphi - 如何将 TStringGrid 从 Delphi 7 转换为 Delphi XE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26492209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com