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 :

affichage des chaine de carectere a l'interieure d'une forme géometrique


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut affichage des chaine de carectere a l'interieure d'une forme géometrique
    Bonjour. pour afficher une forme geometrique j'ai utilisé TShape stEllipse, je que des chaines de carectere s'affiche a l'interieure de cette forme comment je fait? merci d'avance pour votre aide

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Par exemple en posant un TLabel sur ta forme géométrique, en lui changeant sa propriété Color (et en lui donnant la même que ton Ellipse).
    Eventuellement changer la couleur de la Font.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    merci pour votre reponse. j'ai un StringGrid qui contient des lignes et des colonnes , je veut que le nombre de Ellipse dépend de nombre de ligne de StringGrid, et chaque Ellipse contient les chaines de carectere qui existe dans une ligne de ce StrinGrid.merci d'avance pour votre aide.

  4. #4
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    j'ai rien compris!

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    ok ..., je supose que j'ai un StringGrid qui contient 3 lignes je veut un code que quand je clik sur un bouton s'affiche 3 forme geometrique Ellipse .
    et Ellipse 1 contient les chaines de carectere qui existe dans la premire ligne de StrinGrid, le 2eme Ellipse Contient les chaine de carectere de la 2eme ligne de StringGrid etc..........

  6. #6
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Ben tu fais une boucle for et tu itère sur chaque ligne de ton StringGrid, et tu créée dynamiquement (dans le code avec un new ) à chaque fois un TShape et un TLabel que tu positionne à l'endroit souhaité sur ta Form. Dans un premier temps tu peux te contenté des TLabel.

    Mais ca me parait très compliqué, et je ne vois pas trop l'intérêt, mais après tout si tu estime que tu a en a besoins...

  7. #7
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    si c'est possible tu peut me donné le code parce que comme tu as dit c'est compliqué .merci pour votre aide.

  8. #8
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Le but c'est quand même que tu cherche un peu par toi même, pas que quelqu'un te donne le truc tout fais!

    Tu fais une boucle for, tu utilise le lien que je t'ai donné pour comprendre comment créer des composant dynamiquement (dans l'exemple c'est un TButton, a toi de faire pareil avec TLabel et TShape)) , et tu verra c'est pas bien compliqué...

    Essai de le faire, et si tu n'y arrive pas alors poste ton code pour voir ce qui ne va pas, et alors on pourra t'aider.

    Bon courage.

  9. #9
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    merciiiii

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    On peut aussi developper une classe dérivée de TShape ce qui permet d'avoir accès au Canvas de l'objet et dans ce cas il suffirait de dessiner le texte directement sur le shape.

    A plus !

  11. #11
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    Bonjour , j'arrive pas .j'ai met au debut ce code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    for(int i=0;i<Form1->StringGrid2->RowCount;i++)
     { TShape *Shape1;
      Shape1=new TShape(this);
      Shape1->Parent=Panel1;
     }
    je ne sais pas quoi faire par la suite.merci d'avance pour votre aide.

  12. #12
    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
    Salut
    Peut etre en recuperant le Canvas du TShape et utiliser " Canvas->TextRect " un exemple
    Le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    TControlCanvas *pCn;
    pCn = new TControlCanvas();
    pCn->Control = Shape1;
    TRect TheRect;
    TheRect = Rect(10,10,100,100);
    pCn->TextRect(TheRect, 10, 10, "Hello World");
    houps desole grille par henderson

  13. #13
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    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
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
      int positionLeft        = 30 ;
      int positionTop         = 10 ;
      int ecartEntreDeuxLabel = 12 ;
     
      TLabel *label ; 
     
      for( int i = 0; i <  StringGrid1->RowCount; i++)
      {
        label = new TLabel(this);
        label->Parent = Form1;
        label->Caption = StringGrid1->Cells[0][i] ;
        label->Left = positionLeft;
        label->Top  = positionTop +(i*ecartEntreDeuxLabel) ;
      }
    }
    Il y a juste le TLabel, a toi d'ajouter encore le TShape et de gérer les couleurs...

  14. #14
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    salut c'est quoi le code pour que le nombre de Shape =le nombre de ligne de StringGrid .merci d'avance pour votre aide.

  15. #15
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Ben c'est la boucle for qui créee le bon nombre de composant...

    Tu a tester le code que je t'ai donné?

  16. #16
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    oui j'ai tester ton code il me permet d'afficher les chaines de carectere qui existe dans les liges de la premiere colonne de StringGrid dans la forme 1.
    pour Shape j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TShape *Shape ;
      for( int i = 0; i <  Form1->StringGrid2->RowCount; i++)
      { Shape  = new TShape(this);
        Shape->Parent = Panel1;
    Shape->Shape=stEllipse;
    ?????????????????????
    }
    j'arrive pas a mettre le code qui dépend le nombre de Shape avec i.
    merci pour votre aide

  17. #17
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Ben si il y a 5 lignes dans ton StringGrid, ca va te creer 5 TShape, si il y a 6 lignes, ca va te creer 6 TShape, etc...

    A toi de les positionner avec les propriétés Left et Top de ton TShape

  18. #18
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    c'est quoi la popriété pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shape->? =Form1->StringGrid2->Cells[0][i] ;
    merci pour votre aide.

  19. #19
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    ton TShape n'a pas besoin d'accueillir du texte!

    voilà un truc tous fais, a toi juste de positionné les composants:

    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
    void __fastcall TForm1::BitBtn2Click(TObject *Sender)
    {
    // DECLARATION DES CONTANTE DE POSITION DES COMPOSANTS
      int labelLeft           = 50 ;
      int labelTop            = 12 ;
      int ecartEntreDeuxCompo = 30 ;
     
      int shapeLeft           = 20 ;
      int shapeTop            = 5 ;
      int shapeWidth          = 100 ;
      int shapeHeigth         = 28 ;
     
      TColor couleur = clLime ;
     
      TLabel *label ;
      TShape *shape ;
     
    // CREATION DES COMPOSANTS
      for( int i = 0; i <  StringGrid1->RowCount; i++)
      {
        shape = new TShape(this);
        shape->Parent = Form1;
        shape->Shape  = stEllipse ;
        shape->Left   = shapeLeft;
        shape->Top    = shapeTop +(i*ecartEntreDeuxCompo) ;
        shape->Width  = shapeWidth ;
        shape->Height = shapeHeigth ;
        shape->Brush->Color = couleur ;
     
        label = new TLabel(this);
        label->Parent  = Form1;
        label->Caption = StringGrid1->Cells[0][i] ;
        label->Left    = labelLeft;
        label->Top     = labelTop +(i*ecartEntreDeuxCompo) ;
        label->Color   = couleur  ;
      }
    }

  20. #20
    Membre éclairé
    Inscrit en
    Avril 2008
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par défaut
    merci beaucoup sat83 pour ton aide , il fonctionne tres bien
    je veut que chaque shape contient tout les chaine de carectere qui existe dans la ligne de StringGrid ( le premier Shape contient tout les carecteres de la 1er ligne de StringGrid, le 2eme shape contient tout les carectere de 2eme ligne de StringGrid ex........) merci d'avance pour votre aide.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [XL-2007] Affichage d'un commentaire en cas de survol d'une forme
    Par arnaudTHE dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 25/07/2012, 09h19
  2. Réponses: 1
    Dernier message: 28/05/2008, 23h03
  3. format affichage des chaines de caractères
    Par gorgonite dans le forum Langage
    Réponses: 3
    Dernier message: 10/05/2007, 22h14
  4. Réponses: 4
    Dernier message: 30/09/2006, 12h27
  5. Réponses: 6
    Dernier message: 01/09/2006, 18h04

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