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 :

création non dynamique de plusieurs form MDI


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut création non dynamique de plusieurs form MDI
    salut à tous
    bon je m'explique j'ai une fenetre pour saisir le user et le passe qd le passe est correcte je detruit celle la pour créer une nouvelle fenetre avec FormStyle=fsMLDIForm c'est celle la qui va contenir d'autres fenetres Child jusque la c'est bon.

    sur la MDIForm j'ai mis un ToolBar avec un boutton qui va créer ma première fenetre Child (juste pour tester)
    pour cela j'ai inclu le fichier header de la fenetre Child en suite sur l'evenement Onclick j'ai mis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    TForm2 *Form2;
    Form2=new TForm2(Form2);
    Form2->Show();
    j'ai le message d'erreur suivant:

    "le project project1.exe à provoquer une classe d'exception EInvalideOperation avec le message'Impossible de créer la fiche. Aucune fiche non MDI active' "

    pourtant j'ai mis la proprité FormStyle de la deuxieme forme à fsMDIChild

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 94
    Points : 53
    Points
    53
    Par défaut
    menu : projet->options : onglet fiche : supprimer form2 des fiches crées automatiquement (ceci revient à supprimer la ligne de code "Application->CreateForm(__classid(TForm2), &Form2);" dans project1.cpp
    une fois ceci tu n'as plus qu'a foutre formstyle à "fsMDIChild" et sur l'êvenement de ton bouton "TForm2*Form2 = new TForm2(this);"

    cordialement

  3. #3
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    c'est ce que j'ai fait ça marche pas je crois d'après quelques essaie qu'il faut redefinir Form1(fsMDIform) comme form principale parceque celle la est la 3eme fiche il y le splash (création non dynamique) ensuite Form4 (une forme pour saisir l'utilisateur et le mot de passe qui est créer dynamiquement avec Apllication->FormCreate.... comme elle est la seule crée dynamiquement elle est la form principale) ensuite la Form1 (création non dynamique)

    donc je doit redefinir Form1 comme forme principale (après le delete de la Form4) pour qu'elle puisse adopté ma Form Child j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application->MainForm=Form1;
    ça n'a pas marché

  4. #4
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    pourquoi ne pas placer Form1 en form principale, la cacher pour faire saisir log et pass et la montrer si pass ok?

    ainsi ta form principale est bien en MDIForm

  5. #5
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Citation Envoyé par chamamo
    c'est ce que j'ai fait ça marche pas je crois d'après quelques essaie qu'il faut redefinir Form1(fsMDIform) comme form principale parceque celle la est la 3eme fiche il y le splash (création non dynamique) ensuite Form4 (une forme pour saisir l'utilisateur et le mot de passe qui est créer dynamiquement avec Apllication->FormCreate.... comme elle est la seule crée dynamiquement elle est la form principale) ensuite la Form1 (création non dynamique)

    donc je doit redefinir Form1 comme forme principale (après le delete de la Form4) pour qu'elle puisse adopté ma Form Child j'ai mis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application->MainForm=Form1;
    ça n'a pas marché

    si form4 est crée avec FormCreate, elle n'est pas crée dynamiquement justement..

    Dans le source du projet tu devrais avoir quelque chose comme ça, il me semble :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Splash_dlg=new TSplash_dlg(Application); // Crée le splash_screen
           Splash_dlg->Show(); // Affiche le splash screen
           Splash_dlg->Refresh();
     
           xutils = new XmlUtils();
           Form4 = new TForm4(Application);
           Form4->ShowModal();
             Application->CreateForm(__classid(TForm1), &Form1);
             Application->Run();

  6. #6
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Citation Envoyé par say
    pourquoi ne pas placer Form1 en form principale, la cacher pour faire saisir log et pass et la montrer si pass ok?

    ainsi ta form principale est bien en MDIForm
    j'ai déja essayer cette méthode le probleme que c'est impossible de rendre ma forme invisible lors de la création (OnShow) la seul méthode c'est de la rendre invisible c dans la méthode (OnPaint) mais le probleme c que je vois ma fiche s'affiche pendant qq mili second c'est pas agréable

    j'aimerais bien savoir comment définir Form1 apres sa création comme une fiche principale de mon projet je trouve pas la méthode

    je vai essayer la méthode de say je vous tiendrai au courant

  7. #7
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    ça marche merci bcp say comme ça la forme pricipale est form1

  8. #8
    say
    say est déconnecté
    Membre expérimenté
    Avatar de say
    Profil pro
    Inscrit en
    Août 2002
    Messages
    1 176
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 1 176
    Points : 1 300
    Points
    1 300
    Par défaut
    Citation Envoyé par chamamo
    j'ai déja essayer cette méthode le probleme que c'est impossible de rendre ma forme invisible lors de la création (OnShow) la seul méthode c'est de la rendre invisible c dans la méthode (OnPaint) mais le probleme c que je vois ma fiche s'affiche pendant qq mili second c'est pas agréable

    j'aimerais bien savoir comment définir Form1 apres sa création comme une fiche principale de mon projet je trouve pas la méthode
    tu aurais aussi pu le mettre dans le OnCreate, il me semble que je fais ça dans mon projet.
    EN fait, j'ai un splash..un boite de log..une fenetre d'intro puis la form principale en MDIForm justement.

    donc le splash et le log fonctionne, tu l'as vu.
    il me semble que sur le OnCreate de ma mainform, je la caches, avant d'en afficher une autre..une sorte de menu général.

    Bref, le principal c que ça roule pour toi.

    Bonne continuation

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

Discussions similaires

  1. Acesskey dynamique dans un form à plusieurs boutons submit ?
    Par boteha dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 05/09/2005, 17h54
  2. variable globale pour plusieurs Form
    Par ced2004 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 05/04/2005, 08h50
  3. Réponses: 3
    Dernier message: 02/12/2004, 08h50
  4. Comment mettre le même TMainMenu dans plusieurs Form ?
    Par gmc dans le forum Composants VCL
    Réponses: 6
    Dernier message: 12/08/2004, 21h03
  5. [CR] Groupement dynamique sur plusieurs champs paramètrés
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 07/06/2004, 17h55

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