読み取り専用のチェックボックスをグレー表示にしたいのですが、Windows(XP以降)ではチェックされている/チェックされていないステータスを表示しますが、いくつか問題があります。
注-「読み取り専用」について:DelphiのTCheckBoxには読み取り専用オプションすらありません。これは、TPanelに配置して無効にすることで、「偽造」されています...ただし、質問は引き続き有効です。 、グレー表示された読み取り専用チェックボックス、またはその状態を表示する非アクティブなチェックボックスをどのように実現しますか。
無効になっているチェックボックスはグレー表示されていますが、チェックされている状態やチェックされていない状態は表示されません。読み取り専用のチェックボックスを使用できますが、Windowsでテーマを設定すると、通常の編集可能なチェックボックスのように見えます。読み取り専用ボックスの値を変更することはできませんが、変更できるように見えます。
テーマがオフになっている(つまり、クラシックモードの)XPでは、正しく機能します。
大規模なアプリやその開発時間/現金比率がいかに不器用で専門的でないために受け入れられない解決策には、次のものがあります。-テキストを手動でグレー表示し、チェックボックスのステータスの画像を表示する。-チェックボックスのないテーマは見栄えが悪いため、テーマを無効にします。-カスタムチェックボックスの使用
問題のスクリーンショット-これらは3つのチェックボックスで、1つは無効、1つは読み取り専用、もう1つは通常です。
読み取り専用と編集可能なチェックボックスは異なって表示されますが、それは最初の画像の編集可能なボックスにフォーカスがあるためです。2番目の画像に示すように、フォーカスのあるものであれば、読み取り専用のものは同じように見えます。