掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EditのEnabled=False処理で (ID:150115)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
Delphi 6, 7, 2007 です。 Edit系のコンポーネントが3種類ほどあります。 継承元をたどると、TCustomEditが共通の親クラスです。 このとき、これらのEnabledをFalseにしたとき、文字色や背景色を変更したい場合、 以下のように共通化しようとしても、protectedプロパティにアクセスできないため、 コンパイルできません。 procedure EnabledChange(Edit: TCustomEdit; Enabled: Boolean); begin Edit.Enabled := Enabled; if Enabled then begin Edit.Font.Color := clWindowText; Edit.Color := clWindow; end else begin Edit.Font.Color := clGray; Edit.Color := clLtGray; end; end; イカのようなクラスを定義すれば、ActionLinkのSetEnabled が使えるので Enabled プロパティは変更できます。 type THogeLink =class(TWinControlActionLink) end; しかし、フォント色、背景色を変更する手法が思いつきません。 一応、イカの方法もあるのは知っていますが、これに頼らない方法がありますか? type TMyEdit=class(TCustomEdit) end; TMyEdit(Edit).Font.Color := clWindowText; TMyEdit(Edit).Color := clWindow; ソースもあるので、共通した何かを追加することはできますが、 コンポーネント自体に手を加えず、対応する方法があれば、お願いします。 さらに言えば、TCustomComboBox を共通の親とする、ComboBox系コンポーネントも数種類あって・・・ 真の目的は、上記のEnabledChangeの引数がTWinControlで、Enabeldプロパティの変更で 見た目の統一したいということなんですけども。。。(欲深い)
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.