TEditのフォントカラーを変更するには?

解決


グフ  2006-06-26 15:42:29  No: 22291  IP: 192.*.*.*

下記のようにコード上で色を変更してもダイアログに反映されません。
TEdit.Font.Color := clWhite;
プロパティなどの設定で、何か変更する部分があるのでしょうか?
よろしくお願いします。

編集 削除
ママん  2006-06-27 17:54:21  No: 22292  IP: 192.*.*.*

使っているコントロール名を使用してくださいな。
Edit1.Font.Color := clRed;

編集 削除
灼熱  2006-06-28 10:47:31  No: 22293  IP: 192.*.*.*

こんにちわ。
全部のEdtiを変更されるんですか?
for I:=1 to ComponentCount do begin
  if Components[I] is TEdit then begin
    (Components[i] as TEdit).Font.Color := clWhite;
  end;
end;

編集 削除
グフ  2006-06-28 12:58:24  No: 22294  IP: 192.*.*.*

すいません。
条件が抜けていました。
「ディセーブル時のエディットのフォントカラーを変更するには?」でした。
ママんさん、灼熱さん、せっかくのレスをすいませんでした。
どうぞ、よろしくお願いします。

編集 削除
代用  2006-06-28 13:27:14  No: 22295  IP: 192.*.*.*

編集する必要がないなら、Panelで代用すべし。

編集 削除
ん?  2006-06-28 15:55:25  No: 22296  IP: 192.*.*.*

> 「ディセーブル時のエディットのフォントカラーを変更するには?」でした。

そのようなプロパティは、Delphi標準のVCLにはありません。
世の中のコンポーネントを探せばあるかもしれませんが、自分は知りません。

if Edit1.Enabled then 
  Edit1.Font.Color := clWindowText
else
  Edit1.Font.Color := clBlue

Edit1.Enabled を変更したとこで、色を変えさせなさい。

編集 削除
ダイアン2  2006-06-28 22:21:34  No: 22297  IP: 192.*.*.*

EditのEnabledがFalseの時に文字色が常にグレーになるのは WinControlの仕様...なので、EditをPanelに乗せて、そのPanelのEnabledを切り換える手もあり。

編集 削除
ん?  2006-06-28 23:41:20  No: 22298  IP: 192.*.*.*

すいません、Readonlyと勘違いしていました。
二つ上のレスは無視してください。

> WinControlの仕様...
ということで、この仕様を無視したDisable状態のフォント色変更方法
VCLを無視するので、Disable 状態でも、Edit.Enabled = True になります。

procedure TForm1.Button1Click(Sender: TObject);
var
  wstyle  :Integer;
begin
  if Edit2.Tag = 0 then begin
    wstyle := GetWindowLong(Edit2.Handle, GWL_STYLE);
    wstyle := wstyle or WS_DISABLED;
    SetWindowLong(Edit2.Handle, GWL_STYLE, wstyle);
    Edit2.Font.Color := clRed;
    Edit2.Tag := 1;
  end
  else begin
    wstyle := GetWindowLong(Edit2.Handle, GWL_STYLE);
    wstyle := wstyle AND not WS_DISABLED;
    SetWindowLong(Edit2.Handle, GWL_STYLE, wstyle);
    Edit2.Font.Color := clYellow;
    Edit2.Tag := 0;
  end;
end;

暑い・・・

編集 削除
かみづ  2006-06-28 23:43:50  No: 22299  IP: 192.*.*.*

たとえばJVCLのTJvEditだとDisabledTextColorプロパティで設定できますね。

編集 削除
グフ  2006-06-30 12:41:23  No: 22300  IP: 192.*.*.*

仕様があり、プロパティを変更して色を変更することは無理という事を理解しました。
別な方法で簡単にできそうなのは、ダイアン2さんの案ですかね。
たくさんのレスをありがとうございました。

編集 削除