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 :

TForm et Close() [FAQ]


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2004
    Messages
    289
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 289
    Par d�faut TForm et Close()
    Salut � tous,

    Quand je cr�e ma Form principale, je fais un ShowModal () sur une seconde, comme une demande de login. Si jamais le login ne correspond pas je veux fermer la form principale.

    Le truc c'est que la m�thode Close() dans le constructeur de la form principale ne passe pas, elle ne fait rien.

    Comment est-ce que je pourrais la fermer, ou alors l'empecher de s'ouvrir ?

    Merci
    ++

  2. #2
    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
    Vous ne pouvez pas invoquer Form2 dans la constructeur de Form1 car Form2 n'existe pas encore au moment de ce constructeur, il est pr�f�rable d'utiliser l'�v�nement OnShow de Form1 qui se produit juste avant l'affichage mais tous les composants sont cr��s.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    void __fastcall TForm1::FormShow(TObject *Sender)
    {
    Form2->ShowModal();
    }
    Dans Form2, il suffira d'�crire Form1->Close(); pour fermer l'application.

    � bient�t
    Gilles

  3. #3
    Membre �clair�
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2004
    Messages
    289
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 289
    Par d�faut
    En fait la Form2 n'est pas cr��e automatiquement mais c'est moi qui l'a cr�e dans le constructeur de la form principale
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    __fastcall TForm1::TForm1(TComponent* Owner)
      : TForm(Owner)
    {
      TForm2 *Form2 = new TForm2(Form1);
      int a = Form2->ShowModal();
    }
    J'ai essay� de fermer la Form1 par l'attribut Owner de la Form2 mais ca ne marche pas, peut �tre parce que la Form1 n'est pas encore "totalement" cr��e (on est ici dans son constructeur).

  4. #4
    Membre Expert

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 412
    Par d�faut
    Salut !

    Sinon tu peux aussi essayer :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Application->Terminate();
    L'application se termine d�s que tous les messages auront �t� trait�s jusqu'au traitement
    du WM_QUIT, ce qui peut se traduire par un petite inertie, dans le sens ou Form1 pourrait
    appara�tre puis dispara�tre. A tester !

    A plus !

  5. #5
    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
    C'est vrai henderson, Application->Terminate fonctionne dans le constructeur de la forme principale mais pas Close() qui ne fait rien, en revanche Close() fonctionne dans le OnShow ainsi que je l'avais propos�.

    � bient�t
    Gilles

  6. #6
    Membre �clair�
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2004
    Messages
    289
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (�le de France)

    Informations professionnelles :
    Activit� : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 289
    Par d�faut
    Toutes mes excuses Gilles j'avais pas vu que vous proposiez dans le OnShow ()

    La ca marche parfaitement.

    Merci beaucoup

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Create : TFrom & Tbutton [Close TForm]
    Par Gregory666 dans le forum D�buter
    R�ponses: 3
    Dernier message: 12/08/2013, 10h25
  2. R�ponses: 2
    Dernier message: 17/09/2003, 09h36
  3. Taille d'un TForm � l'�tat Maximized
    Par Altau dans le forum C++Builder
    R�ponses: 2
    Dernier message: 13/06/2003, 12h57
  4. [TForm] Ne pas autoriser l'ouverture d'un form
    Par sbeu dans le forum Composants VCL
    R�ponses: 6
    Dernier message: 11/10/2002, 11h20
  5. Probleme d'impression avec la m�thode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    R�ponses: 13
    Dernier message: 31/07/2002, 14h26

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