我希望只读复选框变灰,但在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