Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Dbgrid - mudar cor da fonte de uma coluna, não da lin


Black Sun

Pergunta

É a primeira vez que estou postando, desde já agradeço por todas as vezes em que entrei neste forum e encontrei uma solução um problema. O problema da vez é mudar a cor da fonte de uma coluna específica. Exibir valores negativo em vermelho em uma coluna, em outra quando o valor for 'Débito', escrever em vermelho também. Com isso uma linha que possua valores positivos acaba ficando em vermelho se na linha anterior o valor do campo era negativo.

procedure Tfrm_fluxo_caixa.DBGrid1DrawColumnCell(Sender: TObject;

const Rect: TRect; DataCol: Integer; Column: TColumn;

State: TGridDrawState);

begin

if IBQ_fluxo_caixa.FieldByName('SUBTOTAL').AsFloat < 0 then

begin

DbGrid1.Columns[4].Font.Color:= clRed;

end

else

begin

DbGrid1.Columns[4].Font.Color:= clBlack;

end;

end;

Obrigado

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
Exibir valores negativo em vermelho em uma coluna, em outra quando o valor for 'Débito', escrever em vermelho também

o codigo ficaria assim:

procedure Tfrm_fluxo_caixa.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin

   if (Column.Field.FieldName = 'SUBTOTAL') then
      begin
         if IBQ_fluxo_caixa.FieldByName ('SUBTOTAL').Value < 0 then
            begin
               DBGrid1.Canvas.Font.Color:= clRed;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
            end
         else
             begin
               DBGrid1.Canvas.Font.Color:= clBlack;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
             end;
      end;

   if (Column.Field.FieldName = 'DEBITO') then
      begin
         if IBQ_fluxo_caixa.FieldByName ('DEBITO').Value < 0 then
            begin
               DBGrid1.Canvas.Font.Color:= clRed;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
            end
         else
             begin
               DBGrid1.Canvas.Font.Color:= clBlack;
               DBGrid1.Canvas.FillRect(Rect);
               DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
             end;
      end;

end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...