我希望只讀複選框變灰,但在Windows(XP及以上版本)中顯示其選中/未選中狀態,但我有一些問題。如何使用Delphi在Windows下顯示「灰顯」只讀複選框主題
注意 - 關於'只讀':看起來Delphi的TCheckBox甚至沒有隻讀選項,通過將它放在TPanel上並禁用該選項,問題仍然有效,如何獲得呈灰色的只讀複選框或顯示其狀態的非活動複選框。
已禁用的複選框呈灰色,但這些複選框不顯示已選中或未選中的狀態。只讀複選框可以,但是當Windows以它們爲主題時,它們看起來就像普通的可編輯複選框。只讀框不能更改其值,但它看起來可以。
在關閉主題(即在經典模式下)的XP中,它可以正常工作。
由於大型應用程序或其開發時間/現金比率過於笨拙/不專業,因此無法接受的解決方案包括: - 手動灰化文本並顯示覆選框狀態圖像。 - 禁用複選框上的主題,因爲沒有它們的外觀很難看。
http://i51.tinypic.com/263g128.pnghttp://i53.tinypic.com/m7co4x.png
雖然只讀和可編輯複選框: - - 使用自定義複選框
問題的截圖這三個檢查複選框,一個殘疾人,一個只和一個正常的閱讀看起來不同,這是因爲第一張圖片中的可編輯框具有焦點。如果只讀對象與焦點對象相同,則只讀對象看起來相同,如第二張圖中所示。
如果通過* inactive *您的意思是* disabled *,我cann在XP上覆制您的問題,禁用複選框顯示其檢查狀態。而我無法找到該控件的*只讀*屬性。 – 2011-03-09 02:49:21
對不起,是的,你是正確的。通過激活和不激活我的意思是啓用和禁用。 – Anonymous 2011-03-09 03:04:21
進一步的調查顯示,這並不像我想的那樣。德爾福的TCheckBox,正如你所說的,甚至沒有隻讀選項,這已被僞裝成將其放在TPanel上,並禁用該選項......我必須在開發人員進一步研究之前,正確運行復選框。 – Anonymous 2011-03-09 03:14:56