IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++Builder Discussion :

Centrer un texte dans un string Grid [FAQ]


Sujet :

C++Builder

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Centrer un texte dans un string Grid
    Bonjour : ,

    j'utilise un string Grid et je souhaiterai centrer les données qui s'affiche dans certaines colonnes .

    Voila tout simplement .

    Merci
    Christine (une petite francaise exilée au Quebec)

  2. #2
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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);
        }
    Voilà, ça devrait marcher si tu met cela dans ton OnDrawCell ...
    NB. Les deux lignes Brush et FillRect servent uniquement si tu veux changer la couleur ...

    Mathieu
    Développeur confirmé C++, Java, Python, JS.

  3. #3
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut
    Oubli ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringGrid1->Canvas->FillRect(Rect);
    En fait cette ligne est obligatoire pour effacer le texte de la case, qui s'écrit automatiquement (justifié à gauche) ...
    ... sinon il y a superposition des 2 textes

    Remplace ma 2ième ligne par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AnsiString s = StringGrid1->Cells[Col][Row];
    pour pouvoir supprimer le test, et centrer toute la grille !

    NB. Pense à [Résolu] dans ton titre si tu as ce que tu veux

    Mathieu
    Développeur confirmé C++, Java, Python, JS.

  4. #4
    CGi
    CGi est déconnecté
    Expert éminent
    Avatar de CGi
    Inscrit en
    Mars 2002
    Messages
    1 030
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 1 030
    Points : 8 316
    Points
    8 316
    Par défaut
    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.
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqué ? (Jacques Rouxel)

  5. #5
    Membre habitué
    Avatar de Alacazam
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 88
    Points : 167
    Points
    167
    Par défaut
    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 ??
    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"
    Développeur confirmé C++, Java, Python, JS.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2002
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    MERCI les gars....
    Christine (une petite francaise exilée au Quebec)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Centrer un texte dans une page
    Par Samanta dans le forum Mise en forme
    Réponses: 5
    Dernier message: 20/09/2010, 22h30
  2. [MFC] Centrer du texte dans une RichEdit
    Par firejocker dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2006, 10h05
  3. Centrer un texte dans ListBox, dans OnDrawItem
    Par Sunchaser dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/03/2005, 01h46
  4. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h01
  5. Comment centrer un Texte dans un rectangle ...
    Par Djedjeridoo dans le forum Composants VCL
    Réponses: 3
    Dernier message: 16/06/2003, 21h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo