Buscar

Pintar / colorir linhas do TStringGrid baseado no conteúdo

Código

// by André Feltrin Baldessar
//
// Este procedimento serve para pintar / colorir uma linha de um TStringGrid / String Grid baseado no conteúdo da célula, em tempo de execução.
//
// Para isto, será necessário utilizar o evento OnDrawCell do componente, disponível na aba Events do componente.
// Para entender, você deve pensar que cada vez que você insere ou deleta uma linha no TStringGrid, ele percorre célula por célula e executa este procedimento.
//
// No exemplo abaixo, meu componente TStringGrid era o "meustrgrid".
// Talvez seja necessário alterar a propriedade do componente DefaultDrawing para false.
//
//
procedure Tprincipal.meustrgridDrawCell(Sender: TObject; ACol,
  ARow: Integer; Rect: TRect; State: TGridDrawState);
Const  
// Aqui você define algumas cores em RGB, caso não queira utilizar as padrões do Delphi      
  clPaleGreen = TColor($009BFF9B);
  clPaleRed =   TColor($009DABF9);
begin

// A primeira linha será pintada de Cinza, já que corresponde ao cabeçalho do Grid.
  if Arow=0
    then meustrgrid.Canvas.Brush.color := clSilver
    else

// Dependendo do conteúdo da célula na coluna 7 (que eu defini, você pode escolher qualquer coluna), a linha inteira muda de cor.
  if meustrgrid.Cells[7,ARow] = 'Concluído'
    then meustrgrid.Canvas.Brush.color := clPaleGreen
    else
  if meustrgrid.Cells[7,ARow] = 'Cancelado'
    then meustrgrid.Canvas.Brush.color := clPaleRed;

// Configura a cor e tamanho do texto do Grid
    meustrgrid.Canvas.Font.Color:=clblack;
    meustrgrid.Canvas.Font.Size:=12;

// Pinta a linha
    meustrgrid.canvas.fillRect(Rect);
    meustrgrid.canvas.TextOut(Rect.Left,Rect.Top,agendamento.Cells[ACol,ARow]);

end;
 

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Forms
Adicionada dia: 19/06/10
Por: André F
Visualizada: 15434 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009