Comment changer la couleur des lignes séparatifs d'un stringgrid? [Résolu]

Signaler
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008
-
f0xi
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
-
Bonjour,
Ma question est dans le titre. Comment changer la couleur des lignes séparatifs d'un stringgrid?.
lorque la cellule est fixe, les lignes dessinant la séparation des cellules (on peut modifié la taille de ces lignes avec l'option GridLineWidth) est de couleur noir. Tandis que pour les cellules modifiables, la couleur est en gris clair. Je voudrais pouvoir changer la couleur.
Comment faut-il faire? avec quel instruction?

Merci d'avance

5 réponses

Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
27
Options :

goVertLine et goHorzLine a false



dans l'evenement OnDrawCell de la TStringGrid ...



<hr size="2" width="100%">

procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

var PenOld,BrushOld : Tcolor;

begin

with StringGrid1.Canvas do begin

// on sauvegarde les anciennes couleurs

PenOld := Pen.Color;

BrushOld := Brush.Color;



// si on est sur une cellule "Fixed"

if gdFixed in state then begin

// Pen.Color := $009C7454;

// Brush.Color := $009C7454;

end else

// si on est sur une cellule Selectionnée

if gdSelected in state then begin

Pen.Color := $009C7454;

Brush.Color := $00BC9474;

end else

// si on est sur une cellule qui a le focus

if gdFocused in state then begin

Pen.Color := $009C7454;

Brush.Color := $0054749C;

end else

// sinon ...

begin

Pen.Color := $009C7454;

Brush.Color := $00FFFFFF;

end;

// on passe en mode MASK! tututu Mask nanananana!

pen.Mode := pmMask;

// on dessine le rectangle on peu egalement faire n'importe quoi d'autre

rectangle(rect.Left-1,rect.Top-1,rect.Right+1,rect.Bottom+1);

// on remet les valeur par defauts

pen.Mode := pmCopy;

Pen.Color := PenOld;

Brush.Color := BrushOld;

end;

end;



<hr size="2" width="100%">

et voila...remarque que comparer a un TListbox ou autre composant du
genre on as pas besoin de faire un FillRect(Rect) au debut ni de
remettre le texte avec TextRect...
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

Super c'est ce que je voulais. Merci f0xi.
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
27
Philpas .... Phildar (de 6eme sens) c'est toi ?
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008

après écriture, j'émets tout de même une réserve. Lorsque je saisi le texte dans la cellule le trait inférieur disparait. il revient lorsque je sélectionne une autre cellule.
Messages postés
4200
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
27
oui j'ai egalement remarquer ce bug graphique.

mais je crois qu'il apparait aussi quand on utilise la grille par defaut.