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 :

Ouverture succesive de 3 Forms. [Débutant]


Sujet :

C++Builder

  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 Ouverture succesive de 3 Forms.
    Bonjour,

    j'ai une petite question,


    j'ai donc trois Forms ( Forms1, 2 et 3 ).
    Sur Form1 j'ai un bouton qui permet d'ouvrir Form2 et sur Form2 un bouton permet d'ouvrir Form3.

    Lorsque je clique sur le bouton de Form1, rien ne se passe, Form2 ne veut pas s'ouvrir. J'en ai donc déduis que je n'ai pas du les déclarer la bonne manière.

    Form3 est déclaré en fsMDIchild, Form2 en fsNormal, et Form1 en fsMDIform, mais ça ne doit pas être ça


    Voici comment j'ouvre Form2 depuis 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
    19
    20
    21
    22
    23
    24
    25
    26
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
     
    #include "Unit5.h"
    #include "UnitPrincipale.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TFormMenu *FormMenu;
    //---------------------------------------------------------------------------
    __fastcall TFormMenu::TFormMenu(TComponent* Owner)
        : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TFormMenu::ButtonZeroClick(TObject *Sender)
    {
        LockWindowUpdate(ClientHandle);
        if(Fiche_principale==NULL) Fiche_principale = new TFiche_principale(this);
        Fiche_principale->WindowState = wsMaximized;
        LockWindowUpdate(NULL);
    }
    //---------------------------------------------------------------------------

    Je précise aussi que dans Options > Projet > Fiches, seul Form1 est déclaré comme fiche principale et c'est aussi le seul créé automatiquement.


    Merci d'avance

    Cordialement

    Coxycross

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 053
    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 053
    Par défaut
    LockWindowUpdate
    Tu t'encombres d’élément inutile ! Je n'ai jamais eu besoin de cela dans mes programmes multi-forme MDI ou SDI !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void __fastcall TFormMenu::ButtonZeroClick(TObject *Sender)
    {
        if ( ! Fiche_principale)
          Fiche_principale = new TFiche_principale(this);
     
        Fiche_principale->Show();
        Fiche_principale->WindowState = wsMaximized; // le WindowState est capricieux, veille à le laisser en wsNormal dans le DFM !
    }
    Pour le fsMDIchild\fsMDIform, cela va effectivement affiché tes fenêtres filles dans la zone client de la mère !
    Pour le fsNormal, tu peux effectivement, avoir des fenêtres non MDI !

    J'ai même jouer avec le MDI en changeant FormStyle à la volée que l'on puisse extraire une MDI pour l'afficher dans autre moniteur par exemple, ou la reciproque de ré-intégrer une SDI en MDI !
    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

  3. #3
    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 pour ta réponse

    Je garde ton bout de code pour lé réutiliser, c'est bien plus propre ainsi.

    Cependant, j'ai encore une question, surement assez simple. Avec le bout de code que tu m'as fournit, lorsque je souhaite ouvrir Form2 depuis Form1 ça marche parfaitement bien, mais lorsque j'ouvre Form3 depuis Form2, je me retrouve avec tout l'interface de Form1 qui vient se calquer.

    En fait, je me retrouve avec Form3 et Form1 sur une seule et unique page.

    NB : Dans l'inspecteur d'objet tout mes forms sont bien wsNormal

    Edit2: Je viens de trouver, j'avais oublié de mettre fsNormal a Form3

    Merci d'avance

    cdt Coxycross

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

Discussions similaires

  1. ouverture session sous oracle forms
    Par feuzfatou dans le forum Forms
    Réponses: 2
    Dernier message: 29/05/2007, 12h12
  2. Problème ouverture de document sous forms 10G
    Par squallJ dans le forum Forms
    Réponses: 1
    Dernier message: 22/08/2006, 14h27
  3. Réponses: 4
    Dernier message: 03/08/2006, 17h23
  4. Débutant - Ouverture d'un nouveau form
    Par Colbix dans le forum MFC
    Réponses: 2
    Dernier message: 11/06/2006, 14h45
  5. Ouverture de sessions dans Form
    Par armando123 dans le forum Oracle
    Réponses: 2
    Dernier message: 07/11/2005, 05h18

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