2012-01-08 56 views
1

我有一個應用程序有一個TEdit,它在應用程序運行時被禁用。經過一些計算後,它將被啓用。我的要求是將此禁用的Font.Color設置爲灰色(禁用字體顏色)。已禁用TEdit字體顏色

回答

3

見彼得下面是在這個link完成你對托裏的德爾福頁面客觀兩個建議。從你對谷歌搜索引擎的評論來看,他的第一個建議對你來說會更簡單。刪除一個TPanel窗體上並拖動一個TEDIT到TPanel(即TPanel是TEDIT的父母,然後在表單上放一個按鈕,模擬當你計算完成。

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; 
5

標準TEdit不支持此功能。您可以將編輯設置爲ReadOnly而不是Disabled - 這樣,字體顏色將保留,但用戶無法更改編輯的值。即「禁用」編輯

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

,並再次啓用它

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

我只需要設置功能已停用TEDIT字體顏色可能是隻讀或不是我用谷歌搜索了一些解決方案,但對我來說不能理解 – 2012-01-08 08:45:38

+0

將TEdit.Enabled屬性設置爲False隱含地使編輯字段對用戶是隻讀的,當'TEdit.ReadOnly'屬性實現相同的效果時,不需要使用'TEdit.Enabled'屬性。我在我的應用程序中始終使用這種方法,它工作正常。我甚至通過更改無論何時更改「TEdit.ReadOnly」屬性,都可以「TEdit.Color」屬性,以便用戶可以直觀地看到編輯字段已被禁用「,例如:'Edit1.Color:= clBtnFace; Edit1.ReadOnly:= True;'和'Edit1.Color:= clWindow; Edit1.ReadOnly:= False;' – 2012-01-09 02:17:39