Elisei 0 Denunciar post Postado Fevereiro 11, 2009 Olá, boa tarde a todos. Em meu DBgrid, listo uma tabela com um campo date. Minha intenção é pegar a data atual e comparar com todas as datas que estão listadas em meu DBgrid. As datas que estão no DBgrid que são menores que a data atual, terão suas palavras (fonte) coloridas com uma determinada cor. As datas que são maiores que a data atual, permanecerão como estão (cor preta por exemplo). Tentei fazer com um showmessage por exemplo, mas nao está correto. DataHoje := Date; with DMalma.QrSessoes do begin while not Eof do begin for Cont := 0 to FieldDefList.Count - 1 do begin if ParamByName('data_sessao').AsDate < DataHoje then Showmessage('hoje é: ' + datetoStr(DataHoje)); // colori a fonte das linhas end; Next; end; end; Exemplo de como deveria ficar: Data atual = 11/02/2009 DBGRID: 01/02/2009 02/02/2009 06/02/2009 08/02/2009 10/02/2009 11/02/2009 13/02/2009 15/02/2009 20/02/2009 26/02/2009 28/02/2009 Alguém pode me ajudar a desenvolver esta lógica? Desde já, muito obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites
Maikel Scheid 1 Denunciar post Postado Fevereiro 12, 2009 Olá Bom, veja se a logica a seguir resolve seu problema. No evento DrawColumnCell do DBGrid, adicione o código semelhante ao seguir, criando suas regras: if DataSourceGrid.DataSet.FieldByName('data_sessao').AsDate < Date Then DBGrid1.Canvas.Font.Color := clRed; DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[datacol].field, State); Post o resultado Att Compartilhar este post Link para o post Compartilhar em outros sites
Elisei 0 Denunciar post Postado Fevereiro 12, 2009 Olá boa tarde. if DataSourceGrid.DataSet.FieldByName('data_sessao').AsDate < Date Then DBGrid1.Canvas.Font.Color := clRed; DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[datacol].field, State); Fiz apenas as seguintes alterações: if DataSource.DataSet.FieldByName('data_sessao').AsDateTime < Date Then DBGrid1.Canvas.Font.Color := clRed; DBGrid1.DefaultDrawDataCell(Rect, DBGrid1.columns[datacol].field, State); Funcionou perfeitamente. Exatamente como eu previa. Muito obrigado pela atenção. Abraço. Compartilhar este post Link para o post Compartilhar em outros sites