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]

Responder a