2012-09-03 85 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