Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi XE5:如果字段为数字且应用程序没有默认样式,则DBEdit背景色不起作用_Delphi_Delphi Xe5_Vcl Styles - Fatal编程技术网

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.