Delphi XE5:如果字段为数字且应用程序没有默认样式,则DBEdit背景色不起作用
我无法在运行时更改Delphi XE5:如果字段为数字且应用程序没有默认样式,则DBEdit背景色不起作用,delphi,delphi-xe5,vcl-styles,Delphi,Delphi Xe5,Vcl Styles,我无法在运行时更改DBEdit背景色。 如果启用了DbEditstyleElements([seFont,seClient,seBorder])DBEditName.Color:=clRed(例如)完全不工作。相反,如果styleElements=[]DBEditName.Color:=clRed仅更改DBEdit边框(请参见下图)。但是我想要一个完整的背景色。我怎样才能做到这一点 编辑 当DBEdit Datasource字段为数字(内容向右对齐)且应用程序未应用默认样式(无Windows样式
DBEdit
背景色。
如果启用了DbEdit
styleElements
([seFont,seClient,seBorder]
)DBEditName.Color:=clRed
(例如)完全不工作。相反,如果styleElements=[]
DBEditName.Color:=clRed
仅更改DBEdit
边框(请参见下图)。但是我想要一个完整的背景色。我怎样才能做到这一点
编辑
当DBEdit Datasource字段为数字(内容向右对齐)且应用程序未应用默认样式(无Windows样式)时,会出现问题
这里有一个解决方案,希望能有所帮助 DFM: 考绩制度:
你能在你的问题中加入你的Delphi版本标签吗?我无法复制您在Delphi XE3中描述的内容。顺便说一句,如果你保持包含所有的样式元素,控件的样式是由选定的样式,所以你不能改变颜色是正确的。您需要排除
seClient
元素。但它的工作原理与预期的一样(在DelphiXE3中)。对不起,你说得对!我正在使用XE5with styleElements=[]只绘制边框。请查看我问题中的编辑行。我更好地定义了这个问题
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 300
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 13
object DBEdit1: TDBEdit
Left = 72
Top = 72
Width = 121
Height = 21
TabOrder = 0
StyleElements = [seFont, seBorder]
end
object Button1: TButton
Left = 144
Top = 136
Width = 75
Height = 25
Caption = 'Button1'
TabOrder = 1
OnClick = Button1Click
end
end
unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls;
type
TForm1 = class(TForm)
DBEdit1: TDBEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
DBEdit1.Color := clred;
end;
end.