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 :

Appel d'une seconde fiche [Débutant]


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Par défaut Appel d'une seconde fiche
    bonjour,

    Dans le cadre des mes études, je viens de me lancer dans le C++, et plus particulièrement avec Borland C++ Builder. Mais je dois avouer que ce n'est pas sans difficulté !

    Je viens donc vous exposer mon probleme :

    Pour m'entrainer, je fais des programmes qui n'ont pas d'autres utilités que de manier les objets, etc ...

    Donc, sous C++ Builder, j'ai créé une fiche appelé Form1 dans laquelle j'ai créé un menu " calcul de base" et un sous menu "addition".

    Voila le code complet :

    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
    #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::Addition1Click(TObject *Sender)
    {
        LockWindowUpdate(ClientHandle);
        if(Form2==NULL) Form2 = new TForm2(this);
        Form2->WindowState = wsMaximized;
        LockWindowUpdate(NULL);
    }
    Comme vous pouvez le voir, lorsque je clique sur Addition, je souhaiterai que ma seconde fiche s'ouvre ( Form2 )

    Or, avec le code que je vous ai fournit, Form2 refuse de s'ouvrir lorsque je clique sur addition, je précise que tout c'est déroulé normalement lors de la compilation.

    S'il manque le code de Form2, je peux le copier, mais je doute que celui ci ne soit très utile.

    Cordialement

    Coxycross

  2. #2
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    Il te manque un Form2->ShowModal() ou Form2->Show();
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  3. #3
    Membre expérimenté
    Homme Profil pro
    Enseignant
    Inscrit en
    Mars 2012
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 164
    Par défaut
    c'est l'une des questions les plus posées par mes étudiants, alors je leur ai fait 3 petits tutoriels là dessus.

    Tu les retrouveras ici:

    http://guytprog.blogspot.ca/p/test-new-page.html

    Applications Muliti Fenêtres, Part I, II et III.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Par défaut
    Merci c'est top ! ça marche, je ne connaissais pas cette fonction. J'aurais surement encore besoin de votre aide, mais je préfère cogiter dessus avant

    Edit: Merci pour les cours, je m'en vais les lire tout de suite !

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Par défaut
    En effet, nouveau probleme que je n'avais pas hier, j'ai bien rajouté le Form2->Show(); mais le soucis c'est que lorsque je lance le programme, il n'attend pas l'appui sur le button pour ouvrir la fiche2, il ouvre les deux directement.

    Voila la partie du code qui dois poser soucis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TForm1::Button3Click(TObject *Sender)
    {
        LockWindowUpdate(ClientHandle);
        Form2->Show();
        if(Form2==NULL) Form2=new TForm2(this);
        Form2->WindowState=wsMaximized;
        LockWindowUpdate(NULL);
    }
    Ou alors ceci vient d'une quelconque propriété de Form2 ?
    Là je sèche

    Edit: Je viens d'essayer d'aller dans les options du projet, puis onglet "fiche" et passer fiche2 dans la colonne de droite, mais dans ce cas là, le programme plante lors du clique censé appelé Form2

    Merci d'avance

    Coxycross

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 081
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 081
    Par défaut
    Tu as donc retirer la fiche Form2 créée automatiquement !
    Très bien ! C'est la première chose à faire !

    en plus, en toute logique Show ne peut pas être fait avant le new !
    Tu ne semble pas comprendre ce que fait le new et le rôle important de l'instanciation des objets !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      if ( ! Form2)
        Form2 = new TForm2(this);
     
      Form2->Show();
      Form2->WindowState = wsMaximized;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 44
    Par défaut
    En effet, le Show était mal placé, merci.

    Y a-t-il une différence entre Show() et ShowMedal() ?

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

Discussions similaires

  1. probleme de winform appeler une seconde fois.
    Par eldrad95 dans le forum C#
    Réponses: 6
    Dernier message: 08/11/2009, 09h46
  2. Appel d'une procedure toute les S secondes
    Par thierrybatlle dans le forum Composants VCL
    Réponses: 3
    Dernier message: 01/02/2006, 13h46
  3. Ouvrir une seconde fiche "dialog"
    Par firejocker dans le forum MFC
    Réponses: 8
    Dernier message: 16/11/2005, 22h33
  4. Réponses: 3
    Dernier message: 08/08/2005, 02h40
  5. Appel d'une "fiche disponible"
    Par Kentin dans le forum C++Builder
    Réponses: 6
    Dernier message: 30/03/2005, 22h57

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