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 :

le composant TMemo de builder avec une Form


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut le composant TMemo de builder avec une Form
    bonjour un nouveau soucie avec le composant TMemo de builder,
    j'ai deux FORM, FORM1 et FORM2, Lorsque l'on clique sur un bouton de la FORM1 elle doit ouvrir la FORM2
    et lui passe en paramétre un entier et selon cette entier on execute du code, la en principe selon l'entier
    que l'on a on charge un fichier dans le memo,


    voilà l'exemple :

    x et un entier, passez en paramétre depuis la premiere fenetre FORM1.

    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
    switch(x)
        {
        case 1:
        Memo1->Lines->LoadFromFile("..\\doc.txt");
        break;
     
        case 2:
        Memo1->Lines->LoadFromFile("..\\test.ini");
        break;
     
        case 3:
        Memo1->Lines->LoadFromFile("..\\fichier.doc");
        break;
     
        default:
        Memo1->Lines->Add("Erreur script");
        break;
        }
    le soucie et que a chaque fois le programme affiche dans le Memo

    ---> Erreur script


    je teste avec un label c'est à dire, Label1->Caption = x; le label affiche la bon contenu de la variable apres que je clique dessus,

    je pense qu'il faux recharger, mais je sais pas comment faire, quelqu'un aurez t'il une idée....

    Balises de CODE rajoutées par henderson. Il faudra y penser la prochaine fois !

  2. #2
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Bonjour,

    De quelle manière passes tu le paramètre int a la TForm ?
    (penses a utiliser la balise code, stp, merci...)

    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2002
    Messages
    343
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 343
    Points : 152
    Points
    152
    Par défaut
    Je te conseil d'initialiser 'x' dans la deuxième forme à -1 par exemple. Ensuite, je ne sais pas comment tu passes ta variable mais fais un ShowMessage(x); avant ton switch, histoire de voir quelle valeur se trouve dans ta variable.

    Mais à mon avis, ta variable n'est pas initialiser correctement. N'oublie pas de faire par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    void __fastcall Form2::RecupX(int XdeForm1)
    {
     x=XdeForm1;
    }
    Si ça ne marche toujours pas, écris ton code pour récupérer ta variable X

  4. #4
    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
    Points : 3 766
    Points
    3 766
    Par défaut
    Salut.
    Perso sur la ligne corespondante a "switch(x)" je mettrais un point d'arret pour recuperer la valeur de x, si elle est bonne "ce qui m'etonnerais" tu poursuit en pas a pas sinon tu place tes points d'arret avant la ou tu est suceptible de modifier cette valeur.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  5. #5
    Membre du Club
    Inscrit en
    Août 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 79
    Points : 43
    Points
    43
    Par défaut
    pour affichez le contenu de x, j'utilise un label, lorsque la form s'ouvre elle indique 0, mais un clique sur le label et pouffff il affiche le contenu de x,

  6. #6
    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
    Points : 3 766
    Points
    3 766
    Par défaut
    boopix a ecrit:
    pour affichez le contenu de x, j'utilise un label, lorsque la form s'ouvre elle indique 0, mais un clique sur le label et pouffff il affiche le contenu de x,
    A tu teste la valeur sur le "switch(x)" si la elle est a zero le comportement est normal, ni 1, ni 2, ni 3, donc default.
    Sinon a tu moins de recuperer la valeur de x juste a l'ouverture de la Form pour voir si elle est bien recuperée, sinon si elle est bien passée par la Form precedente.
    --
    Plutot que d'essayer de réinventer la roue, apprenons à nous en servir

  7. #7
    Membre éprouvé
    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
    Points : 1 007
    Points
    1 007
    Par défaut
    Salut,
    Comment as-tu déclaré x, Sunchaser te l'a demandé, et je pense que c'est important.

    Dans la Form1, tu le déclares en globale, et dans Form2 en global mais extern.
    Dans Form1:
    Dans Form2:

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2003
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 17
    Points : 20
    Points
    20
    Par défaut
    Salut,

    voici un exemple qui affiche une form avec 1 bouton et une zone edit.
    Dans la zone edit tu pecise une valeur entre (1 et 4).
    Quand tu clic sur le bouton une Form2 apparait avec un mot et contient la valeur rentrée dans la zone edit.
    Ca pourra peut-être t'aider.

    voici l'évènement OnClick du bouton Form1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        Form2->x = Edit1->Text.ToInt();
        Form2->ShowModal();
    }
    voici le code de Form2.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    class TForm2 : public TForm
    {
    __published:	// Composants gérés par l'EDI
        TMemo *Memo1;
        void __fastcall FormShow(TObject *Sender);
    private:	// Déclarations de l'utilisateur
    public:		// Déclarations de l'utilisateur
        __fastcall TForm2(TComponent* Owner);
    
        int x;
    };
    et enfin le code de Form2.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
     
     
    __fastcall TForm2::TForm2(TComponent* Owner)
        : TForm(Owner)
    {
        x = 0;
    }
    //-------------------------------------------------------------
     
    void __fastcall TForm2::FormShow(TObject *Sender)
    {
        Memo1->Clear();
        switch (x)
            {
            case 1 :    Memo1->Lines->Add("x = 1");
                        break;
            case 2 :    Memo1->Lines->Add("x = 2");
                        break;
            case 3 :    Memo1->Lines->Add("x = 3");
                        break;
            case 4 :    Memo1->Lines->Add("x = 4");
                        break;
            default :   Memo1->Lines->Add("default");
                        break;
            }
    }
    //------------------------------------------------------------
    On peut donc imaginer quand fonction de la valeur de x tu puisses faire le LoadFromFile() souhaité.

    @+

Discussions similaires

  1. RightToLeft avec une form
    Par salihovic dans le forum Windows Forms
    Réponses: 4
    Dernier message: 06/12/2007, 13h58
  2. TMemo non apparent sur une Form
    Par Hypollite76 dans le forum Delphi
    Réponses: 6
    Dernier message: 26/07/2007, 13h26
  3. Une appli C++ Builder avec une DLL étrangère
    Par devroot dans le forum C++Builder
    Réponses: 4
    Dernier message: 24/04/2007, 15h17
  4. [ADO.NET] Update avec une form et des combobox
    Par Herlece dans le forum Accès aux données
    Réponses: 4
    Dernier message: 12/12/2006, 02h12
  5. [VS 2003][dessin] synchronizer un thread avec une forme
    Par Harry_polin dans le forum Windows Forms
    Réponses: 4
    Dernier message: 03/10/2005, 10h31

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