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 :

Text dans TDrawGrid


Sujet :

C++Builder

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut Text dans TDrawGrid
    Bonjour a tous je souhaiterais mettre du text dans une TdrawGrid. est ce possible??? si c'est impossible je voudrais savoir comment faire pour pouvoir colorier les cases d'un tstring grid en fonction de leur contenu...
    merci d'avance de votre aide

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Bonjour,

    Tu peux colorier les cases d'un TStringGrid (qui semble mieux adapté à tes besoins) en agissant sur l'évènement OnDrawCell. Utilises alors StringGrid1->Canvas->FillRect pour dessiner le fond et StringGrid1->Canvas->TextRect pour écrire le texte.

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void __fastcall TForm1::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) 
    {
          TCanvas *pCanvas = ((TStringGrid *)Sender)->Canvas;
     
          pCanvas->Brush->Color = clSilver;
          pCanvas->FillRect(Rect);
     
          pCanvas->Font->Color = clBlack;
          pCanvas->TextOut(Rect.Left+5,Rect.Top+2,
                    ((TStringGrid *)Sender)->Cells[ACol][ARow]);
     
    }
    Règle aussi la valeur de DefaultDrawing selon tes besoins (cf doc).

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut ça a l'air d'etre sa
    merci, ca a l'air d'etre sa mais je n'arrive pas a colorier toute les case indépendament. sa vien sans doute de moi (je suis pas sure d'avoir bien compris le fonctionnement de la chose... ). un peu d'explication suplémentaire ne serait pa de refus...
    merci quand meme

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Pour colorier les cases différemment, tu dois modifier les couleurs de la police et/ou de la brosse en fonction de ARow et ACol.

    EX:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          pCanvas->Brush->Color = (ARow == 2 ? clRed : clSilver);
          pCanvas->FillRect(Rect);
    pour colorier la ligne numéro 2 en rouge.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut Encore un petit détail...
    Déja merci beaucoup josse95 pour ton aide,
    Ta méthode ma beaucoup aidé, il ne me reste plus qu'un probleme, c'est que j'arive a colorier les case que je veu en rouge comme je je voulais, mais leur contenu reste vide...j'ai bien éssayé d'y remettre mon text aprés mais je ne marche pas
    La ligne que j'utilise est celle-ci (juste apres celle que tu ma donné plus haut)
    code : (pCanvas->TextOut(i, j, IntToStr(Montext[i][j]));
    j'ai aussi éssayé en utilisant un TextRect mais sa ne marche pas on plus...

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Par défaut
    Que valent i et j ?
    As tu défini la couleur de la police ?

    As tu essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    pCanvas->TextOut(Rect.Left+5,Rect.Top+2,
                    IntToStr(Montext[i][j]));
    ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 13
    Par défaut Sa marche....
    I et J son mes lignes et colonnes
    oui j'ai défini le couleur de ma police: pCanvas->Font->Color = clBlue;
    J'ai essayer le code de ton dernier message et sa marche comme je veu.
    Encore merci beaucoup

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

Discussions similaires

  1. comment remplacer une partie de texte dans un champs
    Par patlapi dans le forum Paradox
    Réponses: 4
    Dernier message: 20/11/2003, 14h38
  2. Texte dans un canevas
    Par Bernard M dans le forum Langage
    Réponses: 4
    Dernier message: 28/11/2002, 17h56
  3. Centrer un texte dans un string Grid
    Par christine dans le forum C++Builder
    Réponses: 5
    Dernier message: 22/10/2002, 22h33
  4. taille du texte dans un viewport
    Par pitounette dans le forum OpenGL
    Réponses: 3
    Dernier message: 22/07/2002, 12h06
  5. Réponses: 2
    Dernier message: 10/06/2002, 11h03

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