Olá xará! Primeiro de tudo, obrigado pela atenção.
Segundo...o DBGrid não tem um evento OnShow. Onde iria o código que vc passou? Se puder mandar o código que vc fez, fico agradecido. Sds, Ricardo. Ricardo Mendes <[EMAIL PROTECTED]> escreveu: Olá Ricardo...eu tbem tive esse problema... Mas resolvi fazendo da seguinte maneira, no evento on show do dbgrid eu pego a instrução da linha na coluna q tem o status e mudo a cor ...não sei se é o melhor jeito...mas funcionou pra mim... Exemplo: Nome do Fulano | Status | Liberado Teste Fulano | ATIVO | SIM quando ele acha o status ativo ele muda a cor da linha.. eu fiz usando um if IF (SQL.IBCliente.Status.value='ATIVO') then DbGrid.canvas.brusch.color := clred; tem uma opção no dbgrid que precisa ser colocada como false...se não me engano é o defaultcellcolor espero q funcione pra vc... qquer coisa te mando o codigo q fiz em casa. Ricardo Mendes TotalSat - Rastreamento de Veículos Departamento de Informática E-mail: [EMAIL PROTECTED] Tel. (41) 2109-7717 ----- Original Message ----- From: Ricardo César Cardoso To: delphi-br@yahoogrupos.com.br Sent: Thursday, June 14, 2007 10:46 AM Subject: [delphi-br] Problemas com DBGrid Bom dia amigos! Estou tentando montar um DBGrid onde dependendo do status do registro, o conteúdo do registro (texto) aparece em determinada cor e além disso, que este mesmo DBGrid esteja zebrado. Para isso escrevi o seguinte código no evento OnDrawColumnCell do DBGrid: << Procedure TfrmEVENTOS_SERVICO.dbgrdEVENTOS_SERVICODrawColumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); Begin if dmEVENTOS_SERVICO.cdsEVENTOS_SERVICO.RecordCount > 0 then begin with dbgrdEVENTOS_SERVICO do begin case dmEVENTOS_SERVICO.cdsEVENTOS_SERVICO.FieldByName('ESTID').Value of 1 : Canvas.Font.Color := clGreen; 2 : Canvas.Font.Color := clBlue; 3 : Canvas.Font.Color := clRed; else begin Canvas.Font.Color := clRed; end; end; Canvas.Font.Style := [fsBold]; // Faz o efeito "Zebrado" do DBGrid if not odd(dmEVENTOS_SERVICO.cdsEVENTOS_SERVICO.RecNo) then if not (gdSelected in State) then begin Canvas.Brush.Color := clSkyBlue; Canvas.FillRect(Rect); DefaultDrawDataCell(Rect, Column.Field, State); end ; // Sincroniza o alinhamento dos dados com o alinhamento das colunas SincronizeDBGrid(dbgrdEVENTOS_SERVICO); end end ; End; >> Porém nas linhas onde não é mudada a cor de fundo, o texto também não tem a sua cor mudada. O que eu poderia fazer neste caso? Grato, Ricardo. --------------------------------- Novo Yahoo! Cadê? - Experimente uma nova busca. [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] _ --------------------------------- Novo Yahoo! Cadê? - Experimente uma nova busca. [As partes desta mensagem que não continham texto foram removidas]