Bonjour :?: ,
j'utilise un string Grid 8O et je souhaiterai centrer les données qui s'affiche dans certaines colonnes :( .
Voila tout simplement :wink: .
Merci :D
Version imprimable
Bonjour :?: ,
j'utilise un string Grid 8O et je souhaiterai centrer les données qui s'affiche dans certaines colonnes :( .
Voila tout simplement :wink: .
Merci :D
Bonsoir,
Voilà, ça devrait marcher si tu met cela dans ton OnDrawCell ...Code:
1
2
3
4
5
6 if (Col == 4 && Row == 5) { AnsiString s = StringGrid1->Cells[4][5]; StringGrid1->Canvas->Brush->Color = clRed; StringGrid1->Canvas->FillRect(Rect); StringGrid1->Canvas->TextOut((Rect.Right + Rect.Left - StringGrid1->Canvas->TextWidth(s)) / 2, (Rect.Top + Rect.Bottom - StringGrid1->Canvas->TextHeight(s)) / 2, s); }
NB. Les deux lignes Brush et FillRect servent uniquement si tu veux changer la couleur ...
Mathieu
Oubli ...
En fait cette ligne est obligatoire pour effacer le texte de la case, qui s'écrit automatiquement (justifié à gauche) ...Code:StringGrid1->Canvas->FillRect(Rect);
... sinon il y a superposition des 2 textes :?
Remplace ma 2ième ligne par :
pour pouvoir supprimer le test, et centrer toute la grille !Code:AnsiString s = StringGrid1->Cells[Col][Row];
NB. Pense à [Résolu] dans ton titre si tu as ce que tu veux
Mathieu
Personellement quand je fait de la jutification dans un StringGrid
Je ne met rien dans les StringGrid1->Cells[x][y] et j'écris tous avec
StringGrid1->Canvas->TextRect(...) comme ça tu a pas besoin
d'effacer la case. Et avec TextRect tu est sur de ne pas écrire à
l'exterieur de la case.
Oui,
Je suis d'accord pour remplacer le TextOut par TextRect ...
Mais une telle méthode permet-t-elle d'accéder ensuite aux textes ??:koi:
Cela suppose de créer un tableau autre :?: pour définir toutes les entrées du tableau ...
... je préfère garder le tableau accessible par StringGrid->Cells[x][y] :)
Mathieu
P.S. Juste un p'tit coup d'oeil à "Fonctions Inaccessibles de TCustomGrid"
:help:
MERCI les gars.... :D