首页 > 解决方案 > 我可以在 Delphi 6 / Delphi 7 中更改 TRAdioButton 上的字体字符集吗

问题描述

我有一个在 Delphi 6 中构建的旧应用程序。致力于定制,用户可以在其中更改屏幕字体和代码页。我通过递归遍历所有表单、容器、控件等来做到这一点。

这在大多数情况下都有效。

但奇怪的是,我似乎无法更改 TRAdioButton 上的字体字符集。组标题工作正常,但里面的项目不继承容器字符集,尽管它们继承了字体。

显示分组框和项目的示例,内容相同

示例文本以 ANSI 编码的中文输入,字符集 GB2312。

我查看了 ExtCtrls 的来源,并尝试了类似的东西

 TRadioButton(  thegroup.items[i] ).Font.Charset := programFilePrefFont.Charset;

..但它给med访问冲突。

我假设如果全局更改 Windows 区域设置,结果会有所不同,但这在 Win10 上很难。

我知道我可以与 TNT 合作,但这种变化涉及到很多地方,所以暂时不是这样。这也成为了一种好奇的追求。

感谢您的任何意见。

标签: delphimultilingualcharset

解决方案


要更改 aTRadioButton中的字符集,请TRadioGroup使用Buttons组的属性,而不是Items属性。

例如

thegroup.Buttons[i].Font.Charset := programFilePrefFont.Charset;

推荐阅读