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 :

Passage de données


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Par défaut Passage de données
    Bonjour à tous,

    Dans mon programme, j'utilise plusieurs TForm. Chaque TForm ont des rôles différents.
    L'un d'elle doit assurer l'initialisation du Caption de TRadioButton. J'essaye d'envoyer ces données vers un autre TForm et cela ne fonctionne pas!
    Voici Tform.h dans laquelle je déclare mes données en PUBLIC
    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
     
    ...
    //Variable pour les transmissions de catégorie Poids
    //entre Fenêtre Catégorie Officielle et Fenêtre Impression POULE
    //Catégorie POUSSIN MASCULIN
    AnsiString vPM1, vPM2, vPM3, vPM4, vPM5, vPM6, vPM7, vPM8, vPM9, vPM10;
    //Catégorie POUSSIN FEMININ
    AnsiString vPF1, vPF2, vPF3, vPF4, vPF5, vPF6, vPF7, vPF8, cPF9, vPF10;
    //Catégorie BENJAMIN MASCULIN
    AnsiString vBM1, vBM2, vBM3, vBM4, vBM5, vBM6, vBM7, vBM8, vBM9, vBM10;
    //Catégorie BENJAMIN FEMININ
    AnsiString vBF1, vBF2, VBF3, vBF4, vBF5, vBF6, vBF7, vBF8, vBF9, vBF10;
    //Catégorie MINIME MASCULIN
    AnsiString vMM1, vMM2, vMM3, vMM4, vMM5, vMM6, vMM7, vMM8, vMM9, vMM10;
    //Catégorie MINIME FEMININ
    AnsiString vMF1, vMF2, vMF3, vMF4, vMF5, vMF6, vMF7, vMF8, vMF9, vMF10;
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TPoule *Poule;
    //---------------------------------------------------------------------------
    #endif
    Je manipule des données de type :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TLabel->Caption   vers TRadioButton->Caption
    Le résultat est l'affichage d'une zone vierge dans TRadioButton->Caption

    Pouvez-vous m'aider ?
    Merci d'avance à tous et Meilleurs Voeux pour l'année 2007...

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    Salut,
    Tu peux accéder aux variables des TForm en les déclarants (#include Formx.h) et en accédants aux composants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Form1->RadioButton1->Caption
    Au besoin tu peux déclarer une variable dans un .h et la déclarer en extern dans un autre .h pour y avoir accès.

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 19
    Par défaut
    je dit ca sans connaitre les contrainte de ton prog..mais quand je vois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Catégorie POUSSIN MASCULIN
    AnsiString vPM1, vPM2, vPM3, vPM4, vPM5, vPM6, vPM7, vPM8, vPM9, vPM10;
    je me dit qu'un tableau ca serait mieux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Catégorie POUSSIN MASCULIN
    AnsiString vPM[10];

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Par défaut
    Bonjour le amis,

    Effectivement, l'utilisation d'un tableau est plus jusdicieux.
    Par contre, je rencontre toujours des problèmes de passage de données d'un TForm1 à un TForm2
    J'ai essayé la solution de bandit boy
    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
     
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "CategorieOfficielle.h"
    #include "PrintPoule.h"
    #include "Formx.h"
     
     
    //Variable pour les transmissions de catégorie Poids
    //entre Fenêtre Catégorie Officielle et Fenêtre Impression POULE
    //Catégorie POUSSIN MASCULIN
    AnsiString vPM[10];
    ...
    Voici le message en retour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [C++ Erreur] CategorieOfficielle.cpp(8): E2209 Impossible d'ouvrir le fichier include 'Formx.h'
    Du coup, je ne sais pas si j'ai bien compris la manipulation
    J'ai essayé une autre piste celle des variables globales dans TForm1 et dans le TForm2 la même variable déclarée en extern
    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
     
    #include "CategorieOfficielle.h"
    #include "PrintPoule.h"
    //#include "Formx.h"
     
    //Variable pour les transmissions de catégorie Poids
    //entre Fenêtre Catégorie Officielle et Fenêtre Impression POULE
    //Catégorie POUSSIN MASCULIN
    AnsiString vPM[10];
    ...
    void __fastcall TCatOfficielle::ValidOfficielleClick(TObject *Sender)
    {
     vPM[0]="- 23 Kg";
     
     ShowMessage(vPM[0]);
     
    }
    Dans le TForm1, j'ai bien la prise en compte de la donnée "-23 Kg"; confirmation par affichage.
    Et dans le TForm2 :
    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
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "PrintPoule.h"
    #include "CategorieOfficielle.h"
     
    extern vPM[10];
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TPoule *Poule;
    //---------------------------------------------------------------------------
    __fastcall TPoule::TPoule(TComponent* Owner)
            : TForm(Owner)
    {
      float vHaut           = 2.5;
      float vBas            = 2.5;
      float vGauche         = 2.1;
      float vDroit          = 1.3;
      float vEntete         = 1.3;
      float vPieddepage     = 1.3;
      int vEchelle          = 100;
      int vPaysage          = 2;
     
      //Affichage Valeur Catégorie Officielle Poids
      ShowMessage(vPM[0]);
     
      //Création Instance EXCEL
      //Affichage classeur visible
      vMSExcel = Variant::CreateObject("Excel.Application");
      vMSExcel.OlePropertySet("Visible", true);
    L'affiche me donne la valeur 0, pourquoi ???
    Là aussi je tombe dans une impasse
    Pouvez vous m'aider suis-le bien sur la bonne voie ?
    Merci à tous....

  5. #5
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    Bonsoir,

    j'ai repris un peut ton code, j'ai fais :

    1. Un projet contenant 2 TForm : Tform1, TForm2.

    2. Dans TForm1 j'ai déclaré de façon globale un tableau sur dess String :
    le .h
    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
     
    #ifndef Unit1H
    #define Unit1H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm1 : public TForm
    {
    __published:    // Composants gérés par l'EDI
    private:    // Déclarations de l'utilisateur
    public:        // Déclarations de l'utilisateur
     
    String vPM[10] ;
            __fastcall TForm1(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm1 *Form1;
    //---------------------------------------------------------------------------
    #endif
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    #include "Unit2.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
     for(int i = 0 ; i < 10 ; i++)
       vPM[i] = "coucou" ;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormClick(TObject *Sender)
    {
    Form2 -> Show() ;
    }
    //---------------------------------------------------------------------------
    2. Dans TForm2 j'ai afficher le contenu de vPM/TForm1 :

    le .h :
    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
     
    //---------------------------------------------------------------------------
     
    #ifndef Unit2H
    #define Unit2H
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    //---------------------------------------------------------------------------
    class TForm2 : public TForm
    {
    __published:    // Composants gérés par l'EDI
    private:    // Déclarations de l'utilisateur
    public:        // Déclarations de l'utilisateur
            __fastcall TForm2(TComponent* Owner);
    };
    //---------------------------------------------------------------------------
    extern PACKAGE TForm2 *Form2;
    //---------------------------------------------------------------------------
    #endif
    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
    21
    22
    23
    24
    25
    26
    27
     
     //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit2.h"
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
     
     
    void __fastcall TForm2::FormClick(TObject *Sender)
    {
    for(int i = 0 ; i < 10 ; i++)
      ShowMessage(Form1 -> vPM[i]) ;
    }
    //---------------------------------------------------------------------------
    et ça marche nickel.

    à toi de comparer et voir où est le problème dans ton application.

    bon courage.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    63
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 63
    Par défaut
    Bonjour kmaniche,

    Je me suis basé sur ton code et Effectivement cela fonctionne
    Par contre, ensuite j'ai commencé à modifier ton code pour le passage d'un TEdit au TForm2.
    Cela fonctionne très bien
    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
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit1.h"
    #include "Unit2.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    Form2 -> Show() ;
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    //for(int i = 0 ; i < 1 ; i++)
    //   vPM[i] = "coucou" ;
       vPM =Edit1->Text ;
    }
    Par contre, mon idée est de passer TEdit1 Form1 à TEdit2 Form2 ou TEdit1Form1 à RadioButton1 TForm2
    Etant donné que ces boutons sont du même type, le passage devrait se faire normalement Ou alors, selon les catégories le concept de passage de données est différent ce qui explique mes problèmes de manipulation
    kmaniche pour ton aide...

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

Discussions similaires

  1. passage de données entre page
    Par flatron dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 27/01/2006, 13h50
  2. Java script + JSP : Passage de données
    Par Rastapwalu dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/12/2005, 15h58
  3. [C#] Winforms passage de données...
    Par T0xF0x dans le forum Windows Forms
    Réponses: 7
    Dernier message: 07/12/2005, 09h14
  4. Passage de données entre deux pages
    Par spica92 dans le forum ASP
    Réponses: 2
    Dernier message: 08/09/2005, 14h38
  5. [popup] passage de données de session
    Par Mister_FX dans le forum ASP
    Réponses: 4
    Dernier message: 23/08/2004, 17h38

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