DevExpress - Alguém sabe com pintar cxGrid...?
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...
[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
Curtidas 0
Respostas

Walfrido
22/08/2007
resovido... :)
GOSTEI 0

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!
eu já tentei algumas formas aqui mais não consegui :(
Obrigado!
GOSTEI 0

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;
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
22/08/2007
Valeu, obrigado pela dica...
GOSTEI 0

á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].
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
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