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

cs_philpas 77 Messages postés lundi 17 octobre 2005Date d'inscription 4 septembre 2008 Dernière intervention - 25 nov. 2005 à 10:30 - Dernière réponse : f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention
- 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
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 25 nov. 2005 à 12:09
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...

Merci f0xi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 102 internautes ce mois-ci

Commenter la réponse de f0xi
cs_philpas 77 Messages postés lundi 17 octobre 2005Date d'inscription 4 septembre 2008 Dernière intervention - 25 nov. 2005 à 12:15
0
Merci
Super c'est ce que je voulais. Merci f0xi.
Commenter la réponse de cs_philpas
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 25 nov. 2005 à 12:22
0
Merci
Philpas .... Phildar (de 6eme sens) c'est toi ?
Commenter la réponse de f0xi
cs_philpas 77 Messages postés lundi 17 octobre 2005Date d'inscription 4 septembre 2008 Dernière intervention - 25 nov. 2005 à 15:30
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
f0xi 4304 Messages postés samedi 16 octobre 2004Date d'inscription 9 mars 2018 Dernière intervention - 26 nov. 2005 à 10:59
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.