Como colorir o texto de uma certa linha de um stringrid

16/04/2021

7

preciso saber como selecionar uma certa linha de um stringrid e colorir o texto dela
Responder

Posts

http://www.planetadelphi.com.br/dica/7460/-pintar-/-colorir-linhas-do-tstringgrid-baseado-no-conteudo-
Responder

19/04/2021

Winicius

Boa tarde segue a instruções.


// 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;
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários. Para saber mais sobre o uso de cookies,
consulte nossa política de privacidade. Ao continuar navegando em nosso site, você concorda com a nossa política.

Aceitar