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 :

Comment centrer le texte d'un TStringGrid


Sujet :

C++Builder

  1. #1
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut Comment centrer le texte d'un TStringGrid
    Bonjour
    Voici comment centre le texte dans un TStigngGrid
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    // sélection de la couleur de fond
    if(State.Contains(gdFixed))
    {
    StringGrid1->Canvas->Brush->Color = clBtnFace;
    }
    else if(State.Contains(gdSelected))
    {
    StringGrid1->Canvas->Brush->Color = clNavy;
    }
    else
    {
    StringGrid1->Canvas->Brush->Color = clWhite;
    }
    // Dessin du fond
    StringGrid1->Canvas->FillRect(Rect);
    // Sélection de la couleur de texte
        if(State.Contains(gdSelected))
        {
        SetTextColor(StringGrid1->Canvas->Handle, clWhite);
        }
        else
        {
        SetTextColor(StringGrid1->Canvas->Handle, clBlack);
        }
    // Dessin du texte en utilisant la fonction API
    DrawText(StringGrid1->Canvas->Handle, (StringGrid1->Cells[ACol][ARow]).c_str(), -1, &Rect, DT_CENTER | DT_NOPREFIX | DT_VCENTER | DT_SINGLELINE  );
    }
    //---------------------------------------------------------------------------
    Le lien sur la source Delphi

  2. #2
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Une variante de ce code permet d'écrire le texte d'une cellule sur plusieurs lignes
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol,
          int ARow, TRect &Rect, TGridDrawState State)
    {
    // sélection de la couleur de fond
    if(State.Contains(gdFixed))
    {
    StringGrid1->Canvas->Brush->Color = clBtnFace;
    }
    else if(State.Contains(gdSelected))
    {
    StringGrid1->Canvas->Brush->Color = clNavy;
    }
    else
    {
    StringGrid1->Canvas->Brush->Color = clWhite;
    }
    // Dessin du fond
    StringGrid1->Canvas->FillRect(Rect);
    // Sélection de la couleur de texte
        if(State.Contains(gdSelected))
        {
        SetTextColor(StringGrid1->Canvas->Handle, clWhite);
        }
        else
        {
        SetTextColor(StringGrid1->Canvas->Handle, clBlack);
        }
    // Dessin du texte en utilisant la fonction API
    DrawText(StringGrid1->Canvas->Handle, (StringGrid1->Cells[ACol][ARow]).c_str(), -1, &Rect, DT_CENTER | DT_NOPREFIX | DT_WORDBREAK);
    }
    //---------------------------------------------------------------------------
    la source Delphi

Discussions similaires

  1. Comment centrer mon texte et menu ??
    Par bugmenot dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 12/03/2007, 10h37
  2. [JLabel] comment centrer le texte ?
    Par Xitog dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 15/03/2005, 21h51
  3. Centrer le texte dans une TStringGrid
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/06/2004, 11h01
  4. 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