Я хочу, чтобы флажки «только для чтения» были неактивными, но отображают их статус отмеченных / не отмеченных в Windows (XP и выше), но у меня есть некоторые проблемы.
ПРИМЕЧАНИЕ. - Относительно «только для чтения». Похоже, что в Delphi TCheckBox даже нет опции «только для чтения», это было «подделано» путем помещения его в TPanel и отключения этого ... Однако вопрос по-прежнему остается в силе, как можно получить неактивный флажок только для чтения ИЛИ неактивный флажок, отображающий его состояние.
Отключенные флажки выделены серым цветом, но они не отображают проверенное или непроверенное состояние. Флажки только для чтения могут, но когда Windows создает их, они просто выглядят как обычные редактируемые флажки. Поле, доступное только для чтения, не может изменить свое значение, но похоже, что оно может.
В XP с отключенными темами (т.е. в классическом режиме) он работает правильно.
Решения, которые неприемлемы из-за того, насколько они неуклюжи / непрофессиональны для большого приложения или соотношения времени разработки и его использования, включают в себя:
- Вручную серого текста и отображения изображения статуса флажка.
- Отключение тем на флажках, так как смотреть без них некрасиво.
- Использование пользовательских флажков
Снимки экрана с проблемой - это три флажка, один из которых отключен, один только для чтения и один обычный:
http://i51.tinypic.com/263g128.png http://i53.tinypic.com/m7co4x.png
Хотя флажки «только для чтения» и «редактируемые» выглядят по-разному, это только потому, что поле для редактирования на первом изображении имеет фокус. Только для чтения будет выглядеть так же, если оно с фокусом, как показано на втором изображении.