Ir ao conteúdo
  • Cadastre-se

Pascal/Delphi Mudar as cores no evento DrawColumnCell!!!


Posts recomendados

Boa Noite.

 

Estou com um probleminha que não estou conseguindo resolver.

Tenho dois DBGrids onde no 'Dbgrid1' coloco as contas e no 'Dbgrid2' as parcelas das mesmas e desta forma atualizo as cores conforme baixa nas contas e parcelas.

Digamos que para o 'Dbgrid1' uso o DM.qcontasareceber e no 'Dbgrid2' uso o DM.qparcelasR.

Preciso que as contas vencendo no dia atual fiquem conforme abaixo.

 

//A Pagar Hoje
          else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) then
 
             begin
                DBGrid1.Canvas.Brush.Color := clGray;
                DBGrid1.Canvas.Font.Color := clBlack;
             end

porém preciso puxar mais um campo para validação do DM.qparcelasR mais ou menos assim

 

//A Pagar Hoje
           else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) and
                   (dm.qparcelas_RContaFinalizada.Value = 'Não') then
 
              begin
                 DBGrid1.Canvas.Brush.Color := clGray;
                 DBGrid1.Canvas.Font.Color := clBlack;
              end

 

porém quando coloco desta forma acima não muda a cor do grid como se não reconhecesse o comando.

Alguém pode me ajudar?

Segue abaixo todo o código de pintura para quem interessar!!!

Todos os demais códigos estão todos funcionando!!!

 

procedure Tfrm_ContasAReceber.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
          // Selecionado
 if (gdSelected in State) or (gdFocused in State) then
       Begin
          DBGrid1.Canvas.Brush.Color := clBlue;
          DBGrid1.Canvas.Font.Color := clWhite;
       End
 
             // Sem gerar Parcela
   Else   if (dm.qcontasreceberESTATUS.Value = 'QUITADO') and
              (dm.qContasreceberULTIMAPARCELA.Value = 0) then
   begin
       DBGrid1.Canvas.Brush.Color := clBlack;
       DBGrid1.Canvas.Font.Color := clWhite;
   end
             // Pago
   Else   if (dm.qContasreceberESTATUS.Value = 'QUITADO') then
   begin
       DBGrid1.Canvas.Brush.Color := clYellow;
       DBGrid1.Canvas.Font.Color := clBlack;
   end
     //A Pagar Hoje
           else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value = date) then
 
              begin
                 DBGrid1.Canvas.Brush.Color := clGray;
                 DBGrid1.Canvas.Font.Color := clBlack;
              end
              // Vencida
    else if (dm.qcontasreceberPROXIMOPAGAMENTO.Value < date) and
            (dm.qcontasreceberESTATUS.Value = 'PENDENTE') then
 
     begin
      DBGrid1.Canvas.Brush.Color := clRed;
      DBGrid1.Canvas.Font.Color := clWhite;
     end
                  // A Pagar
    else  if (dm.qContasreceberPROXIMOPAGAMENTO.Value > date)and
             (dm.qcontasreceberESTATUS.Value = 'PENDENTE') then
            begin
             DBGrid1.Canvas.Brush.Color := clGreen;
             DBGrid1.Canvas.Font.Color := clWhite;
            end;
 
   DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...