我不知道我的问题是什么,但我无法在DEx2中为TCheckBox,TRadioButton,TGroubBox和TRadioGroup等控件设置字体颜色。如果我在IDE中或以编程方式执行它并不重要。
我已将表单颜色设置为clBlack并希望我的标题是clWhite,但它们不会呈现任何颜色,而是clBlack。当我在表单的OnShow事件上指定颜色并在调试器中逐步执行它时,它会显示我分配给它的值,但在屏幕上它仍然是黑色。
我没有使用样式或其他任何东西。有什么想法吗?
以下是一个示例表单: white on black example http://www.skippix.us/temp/Delphi-Font-Problem.bmp
答案 0 :(得分:6)
在应用程序中使用Windows主题时,将忽略大多数自定义设置(如字体颜色)。作为变通方法并且取决于组件,您可以拥有控件(仅当支持此功能时),覆盖paint方法以便在字体中使用您自己的颜色(TRadioGroup
,TGroupBox
),以及对于TCheckBox
和TRadioButton
等组件(它们是WinAPI控件包装器),您必须拦截WM_PAINT
窗口消息并实现自己的代码来绘制控件。
同样从Delphi-xe2开始,你可以使用vcl styles来改变控件的外观,从这里(可能的话)你可以修改样式钩子来应用你自己的字体颜色和其他自定义。
答案 1 :(得分:0)
一个简单易用的解决方法是创建一个不带标题的复选框,并在其后添加标签。您可以轻松更改标签的颜色。您还可以创建一个将标签绑定到复选框本身的新组件。那就是我在Delphi 2007上工作的原因。
答案 2 :(得分:0)
它将在以下设置下工作: 项目选项>应用程序>运行时主题=无