Comment changer la couleur des lignes séparatifs d'un stringgrid?

Résolu
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008 - 25 nov. 2005 à 10:30
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 26 nov. 2005 à 10:59
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

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
25 nov. 2005 à 12:09
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...
3
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
25 nov. 2005 à 12:15
Super c'est ce que je voulais. Merci f0xi.
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
25 nov. 2005 à 12:22
Philpas .... Phildar (de 6eme sens) c'est toi ?
0
cs_philpas Messages postés 77 Date d'inscription lundi 17 octobre 2005 Statut Membre Dernière intervention 4 septembre 2008
25 nov. 2005 à 15:30
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
26 nov. 2005 à 10:59
oui j'ai egalement remarquer ce bug graphique.

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