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

Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008
- - Dernière réponse : f0xi
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
- 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
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
33
3
Merci
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...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de f0xi
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008
0
Merci
Super c'est ce que je voulais. Merci f0xi.
Commenter la réponse de cs_philpas
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
33
0
Merci
Philpas .... Phildar (de 6eme sens) c'est toi ?
Commenter la réponse de f0xi
Messages postés
77
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
4 septembre 2008
0
Merci
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.
Commenter la réponse de cs_philpas
Messages postés
4307
Date d'inscription
samedi 16 octobre 2004
Statut
Modérateur
Dernière intervention
2 janvier 2019
33
0
Merci
oui j'ai egalement remarquer ce bug graphique.

mais je crois qu'il apparait aussi quand on utilise la grille par defaut.
Commenter la réponse de f0xi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.