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 :

Boutons dans une ligne de tableau


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Par défaut Boutons dans une ligne de tableau
    Bonjour !

    J'ai un souci quant à la conception d'un petit prog. Je vais essayer de résumer.

    J'aimerais avoir une fiche dans laquelle je disposerais un genre de tableau (premier problème) dont je connais pour l'instant le nombre de ligne mais je peux à tout instant ajouter ou enlever une ligne dynamiquement (deuxième problème). Chacune de ces lignes comporterait un ou plusieurs boutons, et des TEdit (troisième problème).

    Je m'étais dit que le best serait de pouvoir construire une class (ou un composant) qui comporte les fonctionnalités (boutons, TEdit ...) que je pourrais donc créer ou détruire de façon dynamique. Seulement, j'ai aucune idée de comment je pourrais faire. Je sais comment je pourrais créer dynamiquement un bouton ou tout autre composant, mais un ensemble de composants liés ??? Par exemple, une fois la ligne créée, j'aimerais que le bouton de cette ligne lance une routine générique sur cette ligne et la modifie.

    Ensuite, mon deuxième souci est de savoir comment disposer le tout ? Le truc serait par exemple comme je le disais, de pouvoir construire un tableau (je parle au niveau affichage, pas un conteneur) dont je fais varier le nombre de lignes, un peu à la façon d'un DBGrid.

    Le but de la chose serait :
    Chaque ligne représente un article acheté, le nombre d'articles et son prix, ainsi que deux boutons, un bouton d'achat et un bouton de vente. Ainsi, je voudrais être en mesure d'ajouter des nouveaux articles (nouvelle ligne) avec les même renseignements et fonctionnalités. Pour chaque article, avec les boutons je serai en mesure d'augmenter ou diminuer le nombre d'articles, ou carrément enlever la ligne.

    Je ne sais pas si c'est suffisamment clair, sinon je pourrais essayer de faire un beau petit dessin pour vous montrer le résultat au niveau affichage pour montrer plus clairement la ligne/class que je voudrais créer et dont je n'ai absolument aucune idée de comment faire

    @+

  2. #2
    Membre confirmé
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Par défaut
    un petit up si des fois y'en aurait qui ont des idées....

    Le but ici est comme je le disais, de créer un tableau (visuel) dynamique dans lequel je pourrais ajouter/enlever des lignes, chaque étant fonctionnelle, c'est-à-dire que par exemple elle comporte un bouton, une case à cocher, un TEdit....

    J'ai creusé un petit peu plus et on dirait que ça serait peut-être possible en me faisant un composant home made, le tableau serait par exemple une suite de ces composants (une ligne du tableau) et pour faire en sorte que ça ressemble à un tableau, faudrait que je gère leur position.

    Ce sont là des pistes que j'explore, quelqu'un aurait une autre idée ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2002
    Messages : 74
    Par défaut
    bonjour,

    Intéressant exercice

    Vous pouvez faire un tableau du composant ancêtre commun à TButton et TEdit. sans doute TWinControl.
    Et gérer dynamiquement les positions et tailles des composants. Et plus délicats, leurs évènements...

    Essayer d'abord de générer dynamiquement un bouton et un edit pour leur faire faire ce que vous voulez.
    Après seulement, essayez de les gérer dans un tableau que vous afficherez.
    Vous aurez besoin de bonnes notions sur l'héritage et le transtypage...

    bon courage.

  4. #4
    Membre confirmé
    Profil pro
    Concepteur traitement de signal
    Inscrit en
    Août 2004
    Messages
    192
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Concepteur traitement de signal
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2004
    Messages : 192
    Par défaut
    Bonjour Seb

    Je suis heureux que tu trouves mon problème un intéressant exercice.... je ne sais pas si tu es prof ou si tu as suivi quelque cours de prog, mais c'est loin d'être mon cas !! Je suis un simple "autodidacte" et je me bidouille, ou du moins j'essaie, des petits progs maison à temps perdu.

    Une question qui me vient suite à ton commentaire, serait-il possible par exemple, de me faire une class qui "comprendrait" par exemple un bouton et un TEdit tout simplement, ou bien devrais-je faire un nouveau composant (ce qui compliquerait énormément ma tâche puisque j'aurais encore d'autres trucs à apprendre comme une grand [] )

    @+

  5. #5
    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 androz
    Pour ton tableau le plus simple est d'utiliser un StringGrid

  6. #6
    Membre chevronné

    Profil pro
    Inscrit en
    Juin 2005
    Messages
    351
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2005
    Messages : 351
    Par défaut
    salut,

    Tu peux créer tes lignes dynamiquement et les stoker par exemple dans un vecteur STL. Je ne sais pas comment sont gérée tes colonnes (toujours identique ou non), mais pour chaque ligne tu pourrais stocker les boutons et edit via un TObjectList.

    Ca donnerait qqch comme ça (écrit sans test):
    Dans le .h:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      #include <vector>
      using namespace std;
     
      typedef vector<TObjectList*> vRows; // Un TObjectlist par ligne
      typedef vRows::iterator         iRows;  // Un iterateur sur les lignes pour les parcourir
      vRows mesLignes;
    Dans le .cpp:
    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
     
      // Créer une nouvelle ligne
      TObjectList *ligne=new TObjectList;
      for (int i=0;i<5;++i) {
        TButton *bouton=new TButton(this);  // Le "this" assure que ma fiche s'occupera du delete, sinon tu devras le gérer toi-même. Tu peux aussi mettre le "monStringGrid" à la place
        if (bouton) {
          bouton->Parent=monStringGrid;   // Dans quel composante afficher le bouton
          // Calculer ici sa position dans le tableau en s'aidant du stringgrid
          bouton->Left=.... 
          bouton->Top=...
          bouton->Width=...
          bouton->Height= ...
          // Associer un événement au click du bouton
          bouton->OnClick=...
          // Associer le bouton à la liste
          ligne->Add(bouton);
        }
      }
      // Associer la ligne aux autres
      mesLignes->push_back(ligne);

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

Discussions similaires

  1. [MySQL] Ajout de commentaires dans une ligne de tableau
    Par Morronight dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 11/05/2011, 10h42
  2. [ZF 1.11] Plusieurs lignes de table SQL dans une ligne de tableau de données
    Par CinePhil dans le forum Zend Framework
    Réponses: 1
    Dernier message: 21/02/2011, 16h14
  3. Réponses: 4
    Dernier message: 13/09/2010, 15h45
  4. [RegEx] Récupération dans une ligne de tableau
    Par nazoreen dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2009, 20h15
  5. Réponses: 2
    Dernier message: 26/06/2009, 12h55

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