mudando cor da fonte do cxGrid
Boa tarde galera,
Estou usando um código semelhante ao que eu usava no grid padrão do Delphi mas quando ele localiza as minhas contas ele pinta a linha da cor incorreta e quando eu clico na linha ele coloca a cor correta.
Estou usando um código semelhante ao que eu usava no grid padrão do Delphi mas quando ele localiza as minhas contas ele pinta a linha da cor incorreta e quando eu clico na linha ele coloca a cor correta.
with ds.DataSet do
begin
if FieldByName('QUITADA').AsString = 'S' then
ACanvas.Brush.Color := clGreen;
if (FieldByName('DATAVENCIMENTO').AsDateTime > date) then
ACanvas.Brush.Color := clYellow;
if (FieldByName('DATAVENCIMENTO').AsDateTime <= date) and
(FieldByName('QUITADA').AsString = 'N') then
ACanvas.Brush.Color := clRed;
end;
Nícolas Braz
Curtidas 0
Respostas
Thiago Irrazabal
05/11/2013
Boa tarde, eu usaria TcxStyleRepository e criaria os "Styles" da grid, depois em Styles (Isso fica nos eventos), da cxGridDBTableView no evento OnGetContentStyle, eu passaria as cores das fontes de acordo com os registros, segue um exemplo.
Att,
Thiago Irrazabal de Oliveira.
if (ARecord is TcxGridDataRow) and (ARecord.Values[rdbConsultaNewQUITADA.Index] = 'S') then
AStyle.Font.Color := clGreen
else if (ARecord is TcxGridDataRow) and (ARecord.Values[rdbConsultaNewDATAVENCIMENTO.Index] > Date) then
AStyle.Font.Color := clYellow
else if (ARecord is TcxGridDataRow) and (ARecord.Values[rdbConsultaNewDATAVENCIMENTO.Index] <= Date) and (ARecord.Values[rdbConsultaNewQUITADA.Index] = 'N') then
AStyle.Font.Color := clRed;
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Nícolas Braz
05/11/2013
if (ARecord is TcxGridDataRow) and (ARecord.Values[rdbConsultaNewQUITADA.Index] = 'S') then
AStyle.Font.Color := clGreen
else if (ARecord is TcxGridDataRow) and (ARecord.Values[rdbConsultaNewDATAVENCIMENTO.Index] > Date) then
AStyle.Font.Color := clYellow
else if (ARecord is TcxGridDataRow) and (ARecord.Values[rdbConsultaNewDATAVENCIMENTO.Index] <= Date) and (ARecord.Values[rdbConsultaNewQUITADA.Index] = 'N') then
AStyle.Font.Color := clRed;
Eu tentei o código usando o dataset e o problema continua, eu criei os estilos já também mas eu não entendi o que é esse "RDBCONSULTA"
GOSTEI 0
Nícolas Braz
05/11/2013
Ficou assim o código mas eu tomo um acess violation.
if (ARecord is TcxGridDataRow) and (ARecord.Values[dbGrid1DBTableView1QUITADA.Index] = 'S') then
AStyle.Font.Color := clGreen
else if (ARecord is TcxGridDataRow) and (ARecord.Values[dbGrid1DBTableView1DATAVENCIMENTO.Index] > Date) then
AStyle.Font.Color := clYellow
else if (ARecord is TcxGridDataRow) and (ARecord.Values[dbGrid1DBTableView1DATAVENCIMENTO.Index] <= Date) and
(ARecord.Values[dbGrid1DBTableView1QUITADA.Index] = 'N') then
AStyle.Font.Color := clRed;GOSTEI 0
Thiago Irrazabal
05/11/2013
Não passa o nome das CORES, "clRed, clYellow" e sim o nome dos "styles" que tu criou apontando é claro para o ".FONT.COLOR".
Att,
Thiago Irrazabal de Oliveira.
if (ARecord is TcxGridDataRow) and (ARecord.Values[dbGrid1DBTableView1QUITADA.Index] = 'S') then AStyle.Font.Color := cxStyleGreen.Font.Color else if (ARecord is TcxGridDataRow) and (ARecord.Values[dbGrid1DBTableView1DATAVENCIMENTO.Index] > Date) then AStyle.Font.Color := cxStyleYellow.Font.Color else if (ARecord is TcxGridDataRow) and (ARecord.Values[dbGrid1DBTableView1DATAVENCIMENTO.Index] <= Date) and (ARecord.Values[dbGrid1DBTableView1QUITADA.Index] = 'N') then AStyle.Font.Color := cxStyleRed.Font.Color;
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Nícolas Braz
05/11/2013
Resolvi da seguinte maneira.
Adicionei um cxStyleRepository adicionei as cores que eu queria e no evento onGetContentStyle.
Valeu :D
Adicionei um cxStyleRepository adicionei as cores que eu queria e no evento onGetContentStyle.
if ARecord.Values[dbGrid1DBTableView1QUITADA.Index] = 'S' then AStyle := cxGreen else if ARecord.Values[dbGrid1DBTableView1DATAVENCIMENTO.Index] > Date then AStyle := cxYellow else if (ARecord.Values[dbGrid1DBTableView1DATAVENCIMENTO.Index] <= Date) and (ARecord.Values[dbGrid1DBTableView1QUITADA.Index] = 'N') then AStyle := cxRed;
Valeu :D
GOSTEI 0
Thiago Irrazabal
05/11/2013
Pois então, foi o que eu disse no primeiro post :D, qualquer dúvida estamos aí, abraço.
Att,
Thiago Irrazabal de Oliveira.
Att,
Thiago Irrazabal de Oliveira.
GOSTEI 0
Nícolas Braz
05/11/2013
Sim, foi mesmo.
GOSTEI 0