在Delphi应用程序中使用较暗的样式时,很难看到禁用的文本,它被设置为深灰色,我无法将其设置为更实用的颜色。我可以在样式编辑器中设置它,但在运行应用程序时不会使用它。有没有其他人遇到这种行为,并能够解决它?
UPDATE:当我使用样式挂钩时,即使我实际将颜色设置为不同的颜色,颜色仍会设置为灰色。
procedure TEditStyleHookColor.UpdateColors;
var
LStyle: TCustomStyleServices;
begin
LStyle := StyleServices;
if Control.Enabled then
begin
Brush.Color := LStyle.GetStyleColor(scEdit);
FontColor := LStyle.GetStyleFontColor(sfEditBoxTextNormal);
end
else
begin
Brush.Color := LStyle.GetStyleColor(scEditDisabled);
FontColor := clWhite; //TWinControlClass(Control).Font.Color;
end;
end;
UPDATE2
样式编辑器还会显示“错误”字体,如本例所示。
答案 0 :(得分:1)
我怀疑这与VCL样式无关,只与Windows / Delphi默认绘制的禁用控件有关。
表示您有两个选择,如SwissDelphiCenter上所述:
1)将控件放在面板上并禁用面板而不是面板 控制。这样颜色就可以保持你设置的颜色。
2)做一个后代并在禁用时接管绘画。
我很快尝试了第一次,效果很好。
您也可以进行只读编辑,这与禁用它不同,但它通常足够,并且具有让您选择和复制编辑内容的优势。