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éer plusieurs fois la meme fenêtre mais avec des infos différentes ? [Débutant]


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Créer plusieurs fois la meme fenêtre mais avec des infos différentes ?
    Bonjour à tous,

    Je suis Débutant en C++, je travail avec C++ Builder V6.

    Je réalise un programme qui mesure des tensions sur différentes cartes électroniques.

    J'ai donc une fenêtre principale où il y a 4 Boutons qui représente chacun une carte:
    1. btnCarte1
    2. btnCarte2
    3. btnCarte3
    4. btnCarte4


    Quand je click sur un des bouton une deuxième fenêtre s'ouvre et dedans on peut y trouver plusieurs mesures de tension de la carte concerné.
    Et bien-sur il doit être possible d'ouvrir les 4 fenêtres représentant les 4 cartes en même temps.


    Et c'est là qu'est ma question: Etant donné que les 4 fenêtres de mesure seront identiques, est ce qu'il est possible de créer une seul fois la fenêtre(ce que j'ai actuellement), et quand je click sur un bouton il faudrait créer une sorte de copie de cette fenêtre, idem si je clique sur un autre bouton, une autre copie de la fenêtre doit être créée ?

    Les fenêtres seront identique sur la forme, mais les mesures seront différentes.
    Je précise qu'il faut obligatoirement des fenêtres séparés: je ne peux pas regrouper toutes les mesures dans une seule.

    Donc est ce possible de faire un truc du genre ?


    Merci par avance pour vos réponses.
    Bonne soirée,
    Benjamin.

  2. #2
    Responsable Magazine

    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 : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Salut,
    oui bien sur que c'est possible, c'est même la base du C++, ça tombe bien

    Pour cela il faut que tu instancie une nouvelle fenêtre à chaque fois, par exemple pour une fenêtre qui à pour classe TForm2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    TForm2* formAAfficher = new TForm2(NULL);
    formAAfficher->Show();
    Ensuite pour libérer la mémoire lorsque ta fenêtre est fermé, tu peut utiliser le paramètre Action de l'evenement OnClose de cette fenêtre en le mettant à caFree :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void TForm2::Form2Close(TObject* Sender, TCloseAction &Action)
    {
      Action = caFree;
    }
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Ha oui, en plus c'est la base ...

    En tout cas, merci beaucoup ! (en plus réponse hyper rapide )


    ça fonctionne très bien, j'arrive bien à avoir des infos différentes.
    Mais j'ai un petit soucis, Builder (ou autre...) ne m'autorise qu'une seule fenêtre à la fois, enfin une seule instance de cette fenêtre.

    Est ce qu'il y a quelque-chose à y faire ? une paramètre à changer etc. J'ai regarder sur le forum et sur google, mais je ne trouve pas grand chose d'utile.

    Promis, après j'arrête avec mes questions !


    Merci par avance,
    Benjamin.

  4. #4
    Responsable Magazine

    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 : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    C'est bizarre, normalement tu n'as rien à faire pour avoir plusieurs instance, tu peut montrer ton code, cela permettrai de voir ou est l'erreur.
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Hum Hum ...

    C'est bien connu, l'erreur se situe entre le clavier et la chaise ... encore une fois c'est prouvé ...

    Âpres 1 heure de test, de nouveau projet créé pour tester etc. je viens de me rendre compte que tout simplement les instances se cachaient sous la fenêtre principale.
    Donc à chaque fois je ne voyais que celle que je venais d'ouvrir, les autres étaient en dessous ....

    Enfin bref ...


    Juste une petite question, si je clique plusieurs fois sur le même bouton, j'ai plusieurs fois la même fenêtre de créée.
    Est ce que par contre ce coup-ci il est possible d'interdire la création multiple d'instance avec le meme nom d'instance: par exemple interdire deux instances avec le nom "test" (voir code ci-dessous). Si jamais ce n'est pas possible, ce n'est pas un problème, je peux gérer ça en desactivant le bouton concerné mais c'est moins propre ..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    void __fastcall TForm1::btnCarte2Click(TObject *Sender)
    {
    TfCheckCarte* test = new TfCheckCarte(NULL);
    test->Show();
    }
    //---------------------------------------------------------------------------
     
    void __fastcall TForm1::btnCarte3Click(TObject *Sender)
    {
    TfCheckCarte* test2 = new TfCheckCarte(NULL);
    test2->Show();
    }
    Encore merci pour ta rapidité et clarté de réponse !

    Benjamin.

  6. #6
    Responsable Magazine

    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 : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Étant donnée que, dans la configuration ou tu te trouve, tu ne sais pas quand la fenêtre est fermé, tu n'as aucune solution de le limité à une seul instance par bouton (surtout que ce que tu veut à la base c'est justement plusieurs instance de la même fenêtre).
    Après il y as toujours des solutions de contournement, mais ça peut être un peut compliqué...
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 32

    Informations forums :
    Inscription : Avril 2009
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Ha mais oui ! j'ai réfléchi un peu trop vite. J'étais encore partis sur l'idée que j'avais des fenêtre "réelle"!
    Donc en effet, pas moyen de savoir quand je ferme... Mais dès que j'ai un peu de temps je chercherais une solution de contournement


    Sur ce, merci à toi !

    Bonne soirée,
    Cordialement,
    Benjamin.


    ------------ EDIT -----------
    tu n'as aucune solution de le limité à une seul instance par bouton (surtout que ce que tu veut à la base c'est justement plusieurs instance de la même fenêtre).
    Pour ce qui est des instances, je pensais que l'on pouvais utiliser le nom de la nouvelle instance comme j'ai mis deux noms différents (ici test et test2) pour savoir par exemple si elle avait déjà été créée ou pas et en fonction du résultat créer une instance ou non.

    -----------------------------

  8. #8
    Responsable Magazine

    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 : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Points : 22 087
    Points
    22 087
    Par défaut
    Citation Envoyé par H3xor Voir le message
    Pour ce qui est des instances, je pensais que l'on pouvais utiliser le nom de la nouvelle instance comme j'ai mis deux noms différents (ici test et test2) pour savoir par exemple si elle avait déjà été créée ou pas et en fonction du résultat créer une instance ou non.
    Oui, en théorie c'est comme cela qu'il aurait fallu faire, mais comme tu ne sais pas quand sont fermer le fenêtre, le problème reste entier
    Quand une réponse vous a été utile, pensez à utiliser le nouveau système de notation

    Lisez le magazine de developpez.com.
    Mes tutos : http://pottiez.developpez.com

    La FAQ BCB -> 642 Questions/Réponses, si vous voulez participer, contactez moi. Aide de BCB6 en français

    N'oubliez pas que l'aide existe et est affichée sous simple pression de la touche F1 , une touche c'est plus rapide que tout un message .

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/03/2014, 16h29
  2. Réponses: 2
    Dernier message: 05/07/2012, 11h59
  3. [Débutant] Tracé sur même figure mais avec des ordonnées différentes
    Par telecofr dans le forum MATLAB
    Réponses: 2
    Dernier message: 07/10/2009, 16h28
  4. Réponses: 2
    Dernier message: 22/02/2008, 22h22
  5. Réponses: 3
    Dernier message: 22/02/2008, 09h55

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