2012-09-03 60 views
4

我不知道我的问题是什么,但是我无法为诸如TCheckBox,TRadioButton,TGroubBox和TRadioGroup等控件在DEx2中设置字体颜色。无论是在IDE中还是以编程方式执行,都无关紧要。如何更改TCheckBox,TRadioButton,TGroupBox上的标题字体颜色?

我已经将我的表单颜色设置为clBlack,并且希望我的标题是clWhite,但它们不会呈现任何颜色,只会显示clBlack。当我在窗体的OnShow事件上分配一个颜色并在调试器中对其进行分步操作时,它会显示我分配给它的值,但在屏幕上它仍然是黑色的。

我不使用样式或其他任何东西。有任何想法吗?

这是一个样表: white on black example http://www.skippix.us/temp/Delphi-Font-Problem.bmp

+0

“我不使用样式”。解决方案是开始使用样式。 –

回答

5

当你在使用一个应用程序的Windows主题,最喜欢的字体颜色的自定义设置将被忽略。作为解决方法并且取决于组件,您可以拥有该控件(仅当支持该功能时),请覆盖绘画方法以便在字体中使用自己的颜色(TRadioGroup,TGroupBox),以及组件TCheckBoxTRadioButton(其中是WinAPI控件包装器),您必须拦截WM_PAINT窗口消息并实现自己的代码来绘制控件。

另外,从Delphi-xe2开始,您可以使用vcl styles,它允许您从这里(以及何时可以)更改控件的外观,您可以修改样式钩子以应用您自己的字体颜色和其他自定义。

+0

感谢您的回复!我会尝试使用样式方法,因为解决方法可能比我现在要做的更多工作......我会让你知道发生了什么。 – skippix