禁用TEdit字体颜色

时间:2012-01-08 08:08:40

标签: delphi delphi-xe2

我有一个TEdit的应用程序在应用程序运行时被禁用。经过一些计算后,它将被启用。我的要求是将此禁用Font.Color的{​​{1}}设置为蓝色而不是灰色(禁用字体颜色)。

2 个答案:

答案 0 :(得分:5)

标准TEdit不支持此功能。您可以将编辑设置为ReadOnly而不是Disabled - 这样可以保留字体颜色,但用户无法更改编辑的值。即“禁用”编辑

Edit1.ReadOnly := True;
Edit1.Font.Color := clBlue;

并再次启用

Edit1.ReadOnly := False;
Edit1.Font.Color := clWindowText;

答案 1 :(得分:3)

请参阅Peter Below关于在此link完成Torry的Delphi页面目标的两条建议。从你对你用Google搜索的评论来判断,他的第一个建议对你来说更简单。在表单上放一个TPanel并将TEdit拖到TPanel上(即TPanel是TEdit的父级。然后在表单上放一个Button来模拟计算完成的时间。

procedure TForm1.btnToggleEnabledClick(Sender: TObject);
begin
  if Panel1.Enabled then
  begin
    {Calcs are not done, so disable the TEdit}
    Panel1.Enabled := false;
    Edit1.Font.Color := clBlue;
    Edit1.Text := 'Calcs not done';
  end
  else
  begin
    {Calcs are done, so enable the TEdit}
    Panel1.Enabled := true;
    Edit1.Font.Color := clWindowText;
    Edit1.Text := 'Calcs all done';
  end;
end;