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 :

nouvelle forme cbuilder


Sujet :

C++Builder

  1. #1
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut nouvelle forme cbuilder
    salut j'ai un petit probleme qui resemble dans un affichage d'un boutton secondaire dans une forme fils c'est a dir dans ma forme principale j'ai un boutton je veux quand je click sur ce boutton s'affiche une autre forme ou il apparait dans celle çi un 2ieme boutton avec son role
    mon code qui ne march pas
    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::Button1Click(TObject *Sender)
    {
     TForm* Former = new TForm(this);
    Former->ShowModal();
    TButton*bt;
    bt=new TButton(Former);
    bt->Parent=Former;
    }
    void __fastcall TForm1::btClick(TObject *Sender)
    {
    close();
    }
    ça pour la fonction du 2ieme boutton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::btClick(TObject *Sender)
    {
    close();
    }

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    As tu créé ta seconde fiche en mode conception (Fichier->Nouveau->Fiche)?

    Si oui, il suffit de faire appel a Show ou ShowModal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::btClick(TObject *Sender)
    {
      Form2->ShowModal() ;
    }
    Si tu souhaite la créer dynamiquement c'est le même chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void __fastcall TForm1::btClick(TObject *Sender)
    {
      TForm2 *MaForm = new TForm2(this) ;  
      MaForm->ShowModal() ;
      delete MaForm ;
    }

  3. #3
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    je m'excuse tout d'abord de mon français , je demande comment faire pour le bouton inclus dans la deuxième forme pour faire activer ce deuxième bouton comment faut il proceder ?

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Il ne reste pas grand chose à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    TForm* Former = new TForm(this);
     
    TButton*bt;
    bt=new TButton(Former);
    bt->Parent=Former;
     
    // accrocher l'événementielle au bouton
    bt->OnClick = btClick;
     
    Former->ShowModal();

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void __fastcall TForm1::btClick(TObject *Sender)
    {
    TButton *b = (TButton*)Sender;
    TForm* *F = (TForm*)b->Owner;
    F->Close();
    }

  5. #5
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    j'ai compris mais le probleme
    que le programe n'arive pas a connaitre la dexieme frame
    afin de creé (file-new-frame)
    meme quand j'ai essaiyé a creé ma forme dynamiquement mon dexieme bouton est non identifié

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !
    Du point de vue dynamique, il n'a pas besoin de l'être.
    On se contente de l'événementiel !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    TButton *b = (TButton*)Sender; // << le bouton qui a généré le click
    Cela suppose bien entendu que la méthode ne soit pas partagée par d'autres boutons. Si c'est le cas, il suffit de déclarer une autre méthode dans la classe de TForm1.

    A plus !

  7. #7
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    salut
    1iere méthode je creé FRAME2
    dans mon premier bouton inclus dans forme1
    je fais ça
    TForm*Frame2;
    Frame2->Show();
    il me done une exeption
    la dexieme methode j'ai essaiyé avec frame dynamique
    mais il ne connais pas le dexieme bouton que j'ai declaré
    svp aide moi

  8. #8
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    mon code du dexieme methode le bouton bt ne s'afiche pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
     TForm *Former = new TForm(this) ;
      Former->ShowModal() ;
     TButton*bt;
     
    bt=new TButton(Former);
    bt->Parent=Former;
    bt->Name="bb";
      bt = (TButton*)Sender  ;
     (TForm*)bt->Owner;
     Former->Close();
     
    }

  9. #9
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par défaut
    Hello,

    Relis les exemples de Sat83 et de Henderson !!
    Regardes dans quel ordre tu dois faire le showmodal et la création du bouton.

  10. #10
    Membre averti
    Inscrit en
    Juillet 2008
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 44
    Par défaut
    salut j'ai réussie d'appeler la dexiem form mais avec changement de declaration d'une forme principale TFormMain mais je n'arrive pas a active le dexieme bouton qui je creé a la dexieme forme
    mon code
    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
    TFormMain *FormMain;
    TForm *Form2;
    //---------------------------------------------------------------------------
    __fastcall TFormMain::TFormMain(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
     
    void __fastcall TFormMain::Button1Click(TObject *Sender)
    {
    Form2->ShowModal();
     
     
     
    }
    il m'ecris ce message
    [Linker Warning] Public symbol '_Form2' defined in both module C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ and C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT2.OBJ
    c'a dire que Form2 est declare dans les deux unité
    mais si je ne decalre pas dans la premiere unité je ne peus pas l'affiche

  11. #11
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par défaut
    Citation Envoyé par aboishak Voir le message
    c'a dire que Form2 est declare dans les deux unité
    mais si je ne decalre pas dans la premiere unité je ne peus pas l'affiche
    As tu ajouter dans le cpp de ta Form1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "NomUniteForm2.h"

Discussions similaires

  1. Copier le contenu d'un Edit dans une nouvelle Form
    Par breizh44 dans le forum Débuter
    Réponses: 16
    Dernier message: 20/02/2008, 22h54
  2. Réponses: 11
    Dernier message: 19/02/2007, 09h13
  3. vb 2005 comment ouvrir une nouvelle form
    Par nh783 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 01/12/2006, 20h41
  4. [C#] problème d'affichage d'une nouvelle Form
    Par michel_frederic dans le forum C#
    Réponses: 15
    Dernier message: 17/11/2005, 16h40
  5. Nouvelle form avec bouton dans barre taches
    Par DarkChamallo dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 17/05/2004, 20h44

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