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 :

afficher une fenetre_B sur une autre fenetre_A


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 53
    Points
    53
    Par défaut afficher une fenetre_B sur une autre fenetre_A
    Bonjour!

    SVP, je suis débutant en C++, je voudrais savoir comment afficher une fenetre_B sur une autre fenetre_A. En fait il sagit d'afficher une fenetre_A et apès son affichage, afficher une autre fenetre_B qui est bien sur plus petite que la fenetre_A. La fenetre_B a un bouton QUITTER et est alors sur la fenetre_A, je voudrais donc faire de telle sorte que quand je clique sur le bouton QUITTER de la fenetre_B, que cette fenetre_B se ferme pour laisser la place à la fenetre_A qui était en arrière plan.

    Merci d'avance pour les réponses d'aide.

    Dibak

  2. #2
    Nouveau membre du Club
    Inscrit en
    Août 2002
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 25
    Points : 29
    Points
    29
    Par défaut
    Salut,

    En résumé tu as deux fenêtres (FormA et FormB) et tu veux que FormB apparaisse après l'apparition de FormA et inversement lors des fermetures.

    Pour faire apparaître FormB :
    Et dès que tu fermeras la FormB, la FormA réapparaîtra toute seule.

  3. #3
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 53
    Points
    53
    Par défaut afficher formB sur FormA
    Salut,

    Merci déja pour la première réponse, je reviens dessus car mon problème n'a toujours pas trouvé de solution. En résumé voici le début de mon code (xxx.cpp)
    1. initialisation
    2. formcreate(FormA)
    3.Application->run();
    4.return;
    Au niveau du point 3, ma FormA apparait à l'écran, mon probleme est donc d'afficher la formB qui doit venir se mettre au dessus de la formA de telle sorte que si je ferme la formB, que je me retrouve sur la formA. a quel niveau du code (quel événément de la formA)dois je mettre l'instruction d'affichage de la formB. Pour que la FormB s'affiche juste après la formA automatiquement sans que l'utilisateur n'ait cliquez quelque part.

    Merci d'avance pour votre réponse.

    Dibak débutant en C++Buider

  4. #4
    Invité
    Invité(e)
    Par défaut
    il faut que la FormB soit la form principale de l'apli, mais la form secondaire, la FormA qui s'affichera avant..

  5. #5
    Invité
    Invité(e)
    Par défaut
    autrement: FormA au demarrage est cachée et la FormB est affichée a sa place, donc si tu fermes FormB, FormA devra reapparaitre..
    FormA->Show();

  6. #6
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    Salut,

    Merci pour la réponse,
    Ok pour l'instruction FormB->ShowModal(); mais le problème c'est de savoir où placer cette instruction pour que l'affichage de la formB se fasse automatiquement après celle de la formA? à quel endroit placer ce code. pour mémoire voici le squelette de mon fichier cpp
    1. initialize
    2.formcreate(formA)
    3.application->run()
    4.return;
    au niveau du point 3, la formA est déja affiché; où faudrait t'il placer l'instruction d'affichage de la formB?

    Merci de m'aider

    dibak

  7. #7
    Invité
    Invité(e)
    Par défaut
    mets ca dans l'evenement FormCreate:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::FormCreate(TObject *Sender)
    {
    FormB->ShowModal();
    }

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bah il me semble que tu fait ça et c tt bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm1::FormActivate(TObject *Sender)
    {
     
    FormB->ShowModal() ;
    }
    Comme ça quand la formA est activée hop la formB ce lance.[/code]

  9. #9
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    Salut,

    Merci pour les réponses, ok mais à quel niveau insérer FormB->Show
    est ce avant application->run() c'est à dire après createformA?

    Merci de votre patience

    dibak

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    pour le mien tu met a l'intérieur de la formA dans le OnActivate mais bon faut que les forme soit dans le même projet. Sinon ça marche pas.

  11. #11
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    merci des réponses,
    mais alors actuellement formB s'affiche avant FormA et quand je ferme formB, je tombe sur formA.

    C'est bon mais pas suffisant: je voudrais que pendant que formB est visible à l'écran, que soit également visible en arriere de formB la FormA.
    donc avoir FormB placé sur FormA et les deux visibles à l'écran cependant seul Formb a le focus. ce n'est que quand formB se ferme que FormA aura le focus. remarquons que c'est FormA qui apparait le premier.

    Merci encore pour votre patience.

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    t'a essayé avec la méthode de zico ou la mienne ??

  13. #13
    Membre du Club
    Inscrit en
    Août 2003
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 110
    Points : 53
    Points
    53
    Par défaut
    oui j'ai essayé avec Onactivate, donc la tienne mais je n'ai pas tenté avec OnCreate donc la méthode de zico mais je me dis que c'est la meme chose, sauf si tu me rassure et je m'en vais tenter.

    bref: onactivate ne résouds pas mon pro car quand formb est affiché, Forma ne se fait pas voir, ce n'est que quand formB se ferme que Forma apparait.

    Oncreate: je me dit que logiquement ça risque de me donner la meme chose.

    Merci beaucoup de ta disponibilité aussi

    dibak

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2003
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    mmmhhh bizarre j'ai essayé et chez moi ça marche. J'ai fait comme suit :

    d'abord j'ai créer ma forme qui va appler les formA et formB.

    donc dans la j'ai mis ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            FormA->Show() ;
    }
    ensuite donc dans la formA j'ai ajouté ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    void __fastcall TFormA::FormActivate(TObject *Sender)
    {
            FormB->ShowModal() ;
    }
    et quand je clique le bouton de ma form1 ça lance la A qui s'affiche et lance directement la B.

    Donc je vois pas ou sa plante chez toi mais cette méthode fonctionne.

  15. #15
    Invité
    Invité(e)
    Par défaut
    looooooooool
    enfin de compte j'ai pigé, dibak veut que la fenetre A reste affichée en arriere plan lors d'affichage de la fenetre B!!!!!
    mdr, ca serait pas plus simple DiBAK d'utiliser les MDI ?!!
    car j'ai du beau essayé plein fois, mais il y a tjrs de blemes..
    si c'est on create, ca bug.. si c'est on, activate ca bug, sauf dans le cas ou tu fais showmodal, mais showmodal cache la fenetre principale.. mais puisque tu veux la garder..
    m'enfin, tien un exemple:

    http://membres.lycos.fr/aljiv/zi_bcb/formaformb.zip

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

Discussions similaires

  1. [XL-2007] afficher les données d'une feuille sur une autre
    Par amapacha dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/10/2014, 17h36
  2. [Débutant] Afficher Les Données D'une DataGridView sur un autre formulaire
    Par cronaldo4ever dans le forum Windows Forms
    Réponses: 2
    Dernier message: 03/02/2014, 19h09
  3. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  4. Réponses: 3
    Dernier message: 16/01/2006, 16h02
  5. Afficher un bouton appartenant à une classe sur une form
    Par Julien_riquelme dans le forum Composants VCL
    Réponses: 2
    Dernier message: 05/09/2005, 13h10

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