DevExpress - Alguém sabe com pintar cxGrid...?

Delphi

22/08/2007

Tenho uma ocluna que guarda os seguintes dados
[AAA]
[AAB]
[ABB]
[BBB]

Gostaria de destacar cada um com uma cor diferente, mas não estou conseguindo fazer...

Teintei assim:

neste evento coloquei assim...

procedure TfrmProcurar.cxGrid1DBTableView1StylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
if (dsProcurar.DataSet.FieldByName(´STATUS´).AsString = ´TIS´) then
BEGIN
cxStyle1.Font.Color := clBlack;
cxStyle1.Color := clLime;
AStyle := cxStyle1;
END;
end;

e completei neste evento assim
procedure TfrmProcurar.cxGrid1DBTableView1CustomDrawCell(
Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
if (dsProcurar.DataSet.FieldByName(´STATUS´).AsString = ´TIS´) then
BEGIN
ACanvas.Font.Color := clWhite;
ACanvas.Brush.Color := clLime;
END;
end;


Ele está pintando somente quando a linha é selecionada, deixando todas de formas desorganizadas...


Walfrido

Walfrido

Curtidas 0

Respostas

Walfrido

Walfrido

22/08/2007

resovido... :)


GOSTEI 0
Ajmsistemas

Ajmsistemas

22/08/2007

Ei amigo, poderia postar ae como você fez para zebrar ´´ o cxgrid?

eu já tentei algumas formas aqui mais não consegui :(

Obrigado!


GOSTEI 0
Osmanito Brito

Osmanito Brito

22/08/2007

Amigos, é uma pena quando alguém faz uma pergunta num Fórum e não colabora com a comunidade.
O amigo acima perguntou e se alguém tivesse respondido ele teria se beneficiado.
Como ninguém respondeu, ou ele conseguiu encontrar a solução, não quis publicá-la.
O fórum não é só para perguntar, é para ajudar. Caso vc encontre uma solução vc mesmo para uma dificuldade sua, poste aqui para ajudar a comunidade.

Estou postando a solução para esta dúvida abaixo. Espero que ajudem vocês.

OSMANITO TORRES

procedure TFrmentmat.grid_dbCustomDrawCell(Sender: TcxCustomGridTableView;
  ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
  var ADone: Boolean);
begin

 if AViewInfo.GridRecord.Values[TcxGridDBTableView(Sender).GetColumnByFieldName('quitada').Index] = False then begin
    ACanvas.Font.Color := clRed;
    ACanvas.Font.Style := [fsBold];
 end;

end;
GOSTEI 0
Geraldo Rodrigues

Geraldo Rodrigues

22/08/2007

Valeu, obrigado pela dica...
GOSTEI 0
áureo Bordignon

áureo Bordignon

22/08/2007

Eu tive o mesmo problema.
O que acontece é que você não deve comparar o resultado da célula com o conteúdo de um dataset e sim utilizar o conteúdo do próprio dataset, utilizando através da propriedade AViewInfo.GridRecord.Values[x].
GOSTEI 0
áureo Bordignon

áureo Bordignon

22/08/2007


corrigindo:
Eu tive o mesmo problema.
O que acontece é que você não deve comparar o resultado da célula com o conteúdo de um dataset e sim utilizar o conteúdo de uma célula na própria grid, utilizando através da propriedade AViewInfo.GridRecord.Values[x].
GOSTEI 0
POSTAR