【发布时间】:2021-02-28 10:13:42
【问题描述】:
我在 Delphi 6 中构建了一个旧应用程序。正在定制用户可以更改屏幕字体和代码页的位置。我通过递归遍历所有表单、容器、控件等来做到这一点。
这在大多数情况下都有效。
但奇怪的是,我似乎无法更改 TRAdioButton 上的字体字符集。组标题工作正常,但里面的项目不继承容器字符集,尽管它们继承了字体。
示例文本以 ANSI 编码的中文输入,字符集 GB2312。
我查看了 ExtCtrls 的来源,并尝试了类似的东西
TRadioButton( thegroup.items[i] ).Font.Charset := programFilePrefFont.Charset;
.. 但它会导致 med 访问冲突。
我假设如果全局更改 Windows 区域设置,结果会有所不同,但这在 Win10 上很难。
我知道我可以与 TNT 合作,但这种变化涉及很多地方,所以暂时不做。这也变成了对好奇心的一点追求。
感谢您的任何意见。
【问题讨论】:
-
TpageControl 中的情况相同,它是 TTabSheet 子级,可能还有其他一些父/子关系。
-
为什么不将您的软件更新到最新的 Delphi 版本?您有样式功能来使您的 GUI 看起来像您想要的那样。字符集和代码页也没有问题,因为字符现在是 16 位 (Unicode)。
-
对于这个项目,现在无法更新。否则,我当然知道 D10.4 提供了我想要的一切。 (一般来说,我每次询问 D6 / D7 时都会收到此评论,这是正确的但不是真正有用的回答)
标签: delphi multilingual charset