2014-02-24 3 views
0

런타임시 DBEdit 배경색을 변경할 수 없습니다. DbEditstyleElements이 활성화 된 경우 ([seFont,seClient,seBorder]) DBEditName.Color:=clRed (예 : )이 작동하지 않습니다. 대신 styleElements=[]DBEditName.Color:=clRed인 경우 DBEdit 국경 (아래 이미지 참조) 만 변경하십시오. 하지만 나는 완전한 배경색을 원합니다. 나는 그것을 어떻게 얻을 수 있습니까?Delphi XE5 : Field가 숫자이고 응용 프로그램에 기본 스타일이없는 경우 DBEdit 배경색이 작동하지 않습니다.

편집

DBEdit 데이터 소스 필드 (내용 잘 정렬) 숫자이며, 응용 프로그램

enter image description here

+0

당신이 당신의 질문에 델파이 버전 태그를 포함 할 수? Delphi XE3에서 설명한 내용을 재현 할 수 없습니다. Btw. 모든 스타일 요소를 포함 시키면 컨트롤이 선택한 스타일로 스타일이 지정되므로 색상을 변경할 수 없습니다. 당신은'seClient' 엘리먼트를 제외시킬 필요가 있습니다. 그러나 예상대로 작동합니다 (Delphi XE3). – TLama

+0

죄송합니다, 당신 말이 맞아요! XE5 – user1709805

+0

을 styleElements = []와 함께 사용하고 있는데 테두리 만 칠해집니다. – user1709805

답변

0

가 여기에 적용하지 않은 기본 스타일 (창문이없는 스타일)이있는 경우 문제가 발생합니다 해결책, 도움이되기를 바랍니다.

DFM :

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 

PAS :

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. 
+0

제 질문에 EDIT 라인을보십시오. 나는 그 문제를 더 잘 정의했다. – user1709805