Colorier colonnes StringGrid de manière inconditionnelle

Signaler
Messages postés
250
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
4 septembre 2020
-
Messages postés
32
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
5 février 2014
-
Bonjour,
Comment colorier les colonnes 1, 3, 5, 7 d'un stringGrid au lancement?

D'avance merci!
PhilLu

2 réponses

Messages postés
4719
Date d'inscription
dimanche 26 février 2006
Statut
Modérateur
Dernière intervention
1 février 2021
14
bonjour,

voici un exemple sur lequel tu peux t'appuyer :

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
  Rect: TRect; State: TGridDrawState);
begin
  with stringgrid1 do
  begin
    if odd(ACol) then
      canvas.brush.color := clAqua
    else
      canvas.brush.color := clYellow;

    if GdSelected in State then
      Canvas.Brush.Color := clHighlight;

    canvas.FillRect(rect);

    if GdSelected in State then
      with Canvas do begin
        Pen.Color := RGB(255, 0, 0);
        Pen.Style := PSSOLID;
        Pen.Width := 3;
        MoveTo(Rect.Left, Rect.Top);
        LineTo(Rect.Right, Rect.Bottom);
      end;
  end;
end;



cantador
Messages postés
32
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
5 février 2014

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
var
dx: Integer;
begin
with (Sender as TStringGrid) do
begin
// Don't change color for first Column, first row
if (ACol 0) or (ARow 0) then
Canvas.Brush.Color := clBtnFace
else
begin
case ACol of
1: Canvas.Font.Color := clBlack;
2: Canvas.Font.Color := clBlue;
end;
// Draw the Band
if ARow mod 2 = 0 then
Canvas.Brush.Color := $00E1FFF9
else
Canvas.Brush.Color := $00FFEBDF;
Canvas.TextRect(Rect, Rect.Left + 2, Rect.Top + 2, cells[acol, arow]);
Canvas.FrameRect(Rect);
end;
end;
end;