Colorir apena uma coluna StringGrid

Delphi

08/01/2015

Olá pessoal, bom dia. estou mais uma vez precisando de ajuda..

pessoal, como faço para colorir apenas uma coluna de uma StringGrid?

Outra dúvida, é possível fazer isso através de um botão?
Alexsandro

Alexsandro

Curtidas 0

Melhor post

Renato Rubinho

Renato Rubinho

08/01/2015

Buenos,

Cria uma variável, ao clicar no botão, armazena se deve ou não colorir:

  private
    { Private declarations }
    bCorColunas: boolean;

procedure TForm1.Button1Click(Sender: TObject);
var
  i,j: integer;
begin
  bCorColunas := not bCorColunas;

  for i:=0 to StringGrid1.ColCount - 1 do
    for j:=0 to StringGrid1.RowCount - 1 do
      StringGrid1.Cells[i,j] := StringGrid1.Cells[i,j];
end;

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
  if bCorColunas and (ACol = 1) and (ARow > 0) then
  begin
    StringGrid1.Canvas.Brush.Color := clRed;
    StringGrid1.Canvas.FillRect(Rect);
    StringGrid1.Canvas.TextOut(Rect.Left+2, Rect.Top+2, StringGrid1.Cells[1,2]);
  end;
end;


Abraççç,
rrubinho
GOSTEI 1

Mais Respostas

Alexsandro

Alexsandro

08/01/2015

valeu rubinho é isso mesmo... muito obrigado..
GOSTEI 0
Alexsandro

Alexsandro

08/01/2015

Grande RRubinho, vê se você pode me ajudar... usando esse exemplo de código que você me passou, está funcionando perfeitamente, no entanto a cor está sobrepondo os dados da coluna...

tipo os dados aparecem mais ficam por baixo da cor... como poderemos resolver isso?
GOSTEI 0
Alexsandro

Alexsandro

08/01/2015

Grande RRubinho, vê se você pode me ajudar... usando esse exemplo de código que você me passou, está funcionando perfeitamente, no entanto a cor está sobrepondo os dados da coluna...

tipo os dados aparecem mais ficam por baixo da cor... como poderemos resolver isso?



R Rubinho não precisa se preocupar-se já consegui! apenas alterei a ultima linha
 StringGrid1.Canvas.TextOut(Rect.Left+2, Rect.Top+2, StringGrid1.Cells[ACol, ARow]);

mesmo assim valeu
GOSTEI 0
POSTAR