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 :

RAD Builder , Probleme


Sujet :

C++Builder

  1. #41
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    On utilise pas le MDI comme ca ? c'est a dire ?
    désolé d'etre chiant , mais quand je fais quelque chose et que je ne comprend pas , c'est assez frustant
    Quand je parle avec vous , jai du mal a vous suivre de tps en tps

    Merci davance

    Si votre utilisation de MDI permet de refaire marcher mon truc , de l'optimiser etc ..... je suis pour

    suffit juste de la savoir

    cordialement

  2. #42
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    MDI signifie que vous avez plusieurs documents de même nature (Multiple Documents Interface) comme Word, par exemple, qui ouvre à chaque fois une fenêtre de même nature pour écrire du texte.

    Vous voyez bien que vos fenêtres n’ont pas le même format, ce n’est donc pas du MDI.

    Faites une application normale. Par exemple mettez FormStyle à fsNormal et jouez sur la visibilité des autres fenêtres comme je vous le disais, par exemple comme ceci.

    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
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
    pF1=new TForm(Application);
    pB1=new TButton(pF1);
    pB1->Parent=pF1;
    pB1->Left=10;
    pB1->Top=10;
    pB1->Caption="Go !";
    pB1->OnClick=ClicB1;
    pF1->Visible=true;
    
    pF2=new TForm(Application);
    pF2->Width=500;
    pF2->Height=500;
    pB2=new TButton(pF2);
    pB2->Parent=pF2;
    pB2->Left=150;
    pB2->Top=10;
    pB2->Caption="Affiche";
    pB2->OnClick=ClicB2;
    pEd=new TEdit(pF2);
    pEd->Parent=pF2;
    pEd->Left=250;
    pEd->Top=10;
    pEd->Text="Bonjour";
    }
    //--------------------
    void __fastcall TForm1::ClicB1(TObject *Sender)
    {
    pF2->Visible=true;
    }
    Cela dit, on se demande pourquoi votre forme principale ne contient rien.

    À bientôt
    Gilles

  3. #43
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    La feuille principale contient juste le mainmenu permettant laccès aux feuilles filles
    de quitter lapplication et dacceder aux configurations de l'imprimante
    c'est tout

    EDIT :

    actuellement , jai un probleme avec une feuille fille ...
    Le programme a un probleme lors du clic sur un bouton du mainmenu de la feuille parent , au clic pour ouvrir une fiche fille , bah ca plante et ca m'ouvre la fenetre CPU , premiere fois

    Jai fais le deboggage pas a pas appronfondis et jai vu que lerreur venait de ces 2 portions de codes

    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
    void __fastcall TF_accueil::BSaisieClick(TObject *Sender)
    {
    //Procédure de suppression de la derniere fiche créé
     
           // Test si une fiche Lecture ou Saisie existante
           if(MDIChildCount==1)
           {
            //Indice 0 indique la dernière fiche crée
            MDIChildren[0]->Close();
           }
           //Création de la fiche
           TF_saisie* F_saisie = new TF_saisie(this);
           	// Visualisation de la nouvelle fiche
           F_saisie->Show();
    }
    //---------------------------------------------------------------------------
    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
    void __fastcall TF_accueil::BConsultationClick(TObject *Sender)
    {
            //Procédure de suppression de la derniere fiche créé
     
           // Test si une fiche Lecture ou Saisie existante
           if(MDIChildCount==1)
           {
            //Indice 0 indique la dernière fiche crée
            MDIChildren[0]->Close();
           }
           //Création de la fiche
           TF_Consultation* F_Consultation = new TF_Consultation(this);
           	// Visualisation de la nouvelle fiche
           F_Consultation->Show();
    }

  4. #44
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    La feuille principale contient juste le mainmenu permettant l'accès aux feuilles filles
    Il n'y a aucune raison que ce soient des feuilles filles, ainsi que je vous l'ai expliqué. Admettons que votre forme principale contienne le menu, à partir de là vous devriez créer des formes libres et non des fenêtres enfants, c'est plutôt ainsi qu'on procède quand les fenêtres ne sont pas de même nature.

    À bientôt
    Gilles

  5. #45
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    quand elles ne sont pas de meme nature ?

  6. #46
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    quand elles ne sont pas de meme nature ?
    Vous voyez bien que vos fenêtres ne sont pas les mêmes et qu'elles n'ont pas la même fonction, elles ne devraient donc pas être filles de la forme principale. MDI signifie qu'on crée des documents qui sont chaque fois les mêmes, soit du dessin, soit du texte, soit de la musique etc. Ici, vous utilisez simplement plusieurs fenêtres, comme elles ne sont pas les mêmes et que ce ne sont pas des documents, votre application ne devrait pas être MDI.

    À bientôt
    Gilles

  7. #47
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    Citation Envoyé par pottiez Voir le message
    C'est jolie ce screen, mais ca ne nous dit pas grand chose

    à quel moment de ton execution cela se produit, regarde avec la pile d'appel, etc...

    merci de mavoir repondu pour le probleme du screen cependant je ne suis pas arrivé a le resoudre tu m'as parlé de la pile ? questce que je dois verifié au juste ? merci davance

  8. #48
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    la pile d'appel sert à savoir par quel fonction tu es passé avant que cela plante, tu peut alors voir si t'es variables stock des valeur coérente pour e bon fonctionnement de ton programme et dans le cas contraire tu sera pourquoi ton programme plante, et corrigé plus facilement le probleme car tu sais quel variable n'as pas la bonne valeur.
    Pour afficher la pile d'appel, il faut faire, voir->pile d'appel.

  9. #49
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    merci beaucoup
    voici donc où plante lapplication
    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
    void __fastcall TFaccueil::BConsultationClick(TObject *Sender)
    {
            //Procédure de suppression de la derniere fiche créé
     
           // Test si une fiche Lecture ou Saisie existante
           if(MDIChildCount==1)
           {
            //Indice 0 indique la dernière fiche crée
            MDIChildren[0]->Close();
           }
           //Création de la fiche
           TFconsultation* Fconsultation = new TFconsultation(this);
           	// Visualisation de la nouvelle fiche
           Fconsultation->Show();
    }

  10. #50
    Membre Expert
    Avatar de Gilles Louïse
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    421
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2002
    Messages : 421
    Par défaut
    Citation Envoyé par Pugebad Voir le message
    //Procédure de suppression de la derniere fiche créée
    Je ne sais pas trop ce que vous cherchez à faire mais il faut noter que le Close ferme la fenêtre et ne la supprime pas forcément, elle n'est supprimée que si Action=caFree dans le OnClose.

    On se demande pourquoi vous tenez tant à ce que ce soient des fenêtres enfants après que je vous ai expliqué que votre application n'avait pas les caractéristiques du MDI. En plus, si le code que je vous ai donné fonctionne, pourquoi ne pas l'utiliser ?

    À bientôt
    Gilles

  11. #51
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 371
    Par défaut
    le MDI est une contrainte du cahier des charges

    Bon ça sert a rien de continuer ce débat.

    Merci pour vos réponses, meme si le probleme persiste!

    Bonne soirée

Discussions similaires

  1. ouverture d'une appli Builder Probleme violation d'acces
    Par jamescook dans le forum C++Builder
    Réponses: 0
    Dernier message: 07/01/2008, 09h39
  2. Réponses: 1
    Dernier message: 16/10/2007, 18h15
  3. RaveReport & C# Builder probleme de "using"
    Par SubZero2 dans le forum Rave
    Réponses: 2
    Dernier message: 13/12/2006, 09h20
  4. petit probleme avec l'éditeur de builder
    Par qZheneton dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/10/2004, 16h19
  5. Probleme C++Builder et Mysql
    Par noname dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 13h40

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