掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
EditのEnabled=False処理で (ID:150119)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
自分も同じようなことを考えたことがあるのですが 共通のTWinCotrolから簡単にプロパティを変更しようとすると is でクラスごとに処理を変えるぐらいしか思いつきませんでした。 Colorが published で定義されているので 実行時型情報(RTTI)を使えば型が異なっていても プロパティ名経由で読み書き出来るかと思います。 ただ、結構なプログラム量になるかもしれないので その処理の使用頻度によるかもしれません。 procedure TForm7.Button1Click(Sender: TObject); begin EnabledChange(Edit1,not Edit1.Enabled); end; procedure TForm7.Button2Click(Sender: TObject); begin EnabledChange(ComboBox1,not ComboBox1.Enabled); end; procedure TForm7.EnabledChange(ctrl: TWinControl; Enabled: Boolean); var Edit : TEdit; Combo : TComboBox; c,cf : TColor; begin ctrl.Enabled := Enabled; if Enabled then begin cf := clWindowText; c := clWindow; end else begin cf := clGray; c := clLtGray; end; if ctrl is TEdit then begin Edit := TEdit(ctrl); Edit.Font.Color := cf; Edit.Color := c; end; if ctrl is TComboBox then begin Combo := TComboBox(ctrl); Combo.Font.Color := cf; Combo.Color := c; end; end;
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.