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 :

[BCB6]Comportement d'une Form


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par d�faut [BCB6]Comportement d'une Form
    Bonjour tout le monde,
    J'ai un petit probl�me. J'ouvre depuis ma Form1, une Form2 via ce bout de code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm1::Configurations1Click(TObject *Sender)
    {
            //On ouvre la boite de dialogue.
            Form2->ShowModal();
    }
    la Form2 s'ouvre et le code suivant s'ex�cute:
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
    //---------------------------------------------------------------------------
     
    #include "DAPM_Fom.h"           //La fiche de la fenêtre du main.
    #include "DAPM_Fom_Pref.h";     //La fiche de la fenêtre de préférence.
    //---------------------------------------------------------------------------
     
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    //A l'ouverture de la boite de dialogue.
     
    void __fastcall TForm2::FormCreate(TObject *Sender)
    {
            //Renome la fenêtre.
            Form2->Caption = Form1->NomLogiciel + " " + Form1->VersionLogiciel + " le " + Form1->DateRevLogiciel + " - Configurations.";
     
            //Prépatarion des champs d'acceuil.
            EditHost->Clear();
            EditPort->Clear();
            EditIdentifiant->Clear();
     
            EditMdp->Clear();
            EditMdp->PasswordChar = 'X';    //Ici on masquera la saisie du mot de passe par un X.
     
            EditMailEmeteur->Clear();
            EditMailRecepteur->Clear();
     
            //Préparation des boutons.
            BtnOk->Caption = "Ok";
            BtnClose->Caption = "Fermer";
     
            //On chargera les données issu du fichier ini.
            if(Form1->TestFichier(Form1->DestPreferenceIni))
            {
                    //On chargera chaque champs avec ce qui est contenu dans le fichier.
            }
     
    }
    //---------------------------------------------------------------------------
    Seulement voila si je ferme la Form2 avec la croix, lorsque je la r�ouvre, on ne r�-ex�cute pas le code...
    Et la ce n'est plus correct car on ne va plus reprendre les donn�es du fichier ini pour le mettre � l'�cran.

    Existerait il une possibilit� d' ex�cut� syst�matiquement ce que j'ai cod� ?
    Merci beaucoup pour vos indications.
    Cordialement.

  2. #2
    Membre �m�rite
    Inscrit en
    Juillet 2005
    Messages
    512
    D�tails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 512
    Par d�faut
    Ton code ne s'execute qu'a la cr�ation de la fiche.
    Quand tu la ferme elle est seulement cach�e.
    Tu as donc deux solutions :
    - soit tu mets ton code sur l'�venement OnShow de la fiche.
    - ou bien tu cr�e ta fiche dynamiquement et tu la d�truis quand tu la ferme et tu en cr�e une nouvelle quand tu la reouvre.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par d�faut
    Je vais para�tre peut �tre stupide... M' enfin bon. C'est ainsi que l'on apprend!
    Peut on me donner les deux exemples de code cit� par Lucien63 s'il vous plait
    Car les deux m�thodes vont au final m' int�ress�s pour bon nombre d'applications
    Cordialement.

    Je r� �dite mon post pour mettre ce que j'ai modifier et qui a l'air de fonctionn� correctement.
    J'ai rien changer sur la Form1 donc je ne posterais pas ce qui en est ici...
    Dans ma Form2 j'ai simplement mis 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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
    //---------------------------------------------------------------------------
     
    #include <vcl.h>
    #pragma hdrstop
    //---------------------------------------------------------------------------
     
    #include "DAPM_Fom.h"           //La fiche de la fenêtre du main.
    #include "DAPM_Fom_Pref.h";     //La fiche de la fenêtre de préférence.
    //---------------------------------------------------------------------------
     
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm2 *Form2;
    //---------------------------------------------------------------------------
    __fastcall TForm2::TForm2(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
     
    //A la création de la boite de dialogue.
     
    void __fastcall TForm2::FormCreate(TObject *Sender)
    {
            //Renome la fenêtre.
            Form2->Caption = Form1->NomLogiciel + " " + Form1->VersionLogiciel + " le " + Form1->DateRevLogiciel + " - Configurations.";
     
            //Prépatarion des champs d'acceuil.
            EditHost->Clear();
            EditPort->Clear();
            EditIdentifiant->Clear();
     
            EditMdp->Clear();
            EditMdp->PasswordChar = 'X';    //Ici on masquera la saisie du mot de passe par un X.
     
            EditMailEmeteur->Clear();
            EditMailRecepteur->Clear();
     
            //Préparation des boutons.
            BtnOk->Caption = "Ok";
            BtnClose->Caption = "Fermer";
     
            /*//On chargera les données issu du fichier ini.
            if(Form1->TestFichier(Form1->DestPreferenceIni))
            {
                    //On chargera chaque champs avec ce qui est contenu dans le fichier.
            }*/
     
    }
    //---------------------------------------------------------------------------
     
    //A l'ouverture de la boite de dialogue.
     
    void __fastcall TForm2::FormShow(TObject *Sender)
    {
            //On chargera les données issu du fichier ini.
            if(Form1->TestFichier(Form1->DestPreferenceIni))
            {
                    //On chargera chaque champs avec ce qui est contenu dans le fichier.
            }
    }
    //---------------------------------------------------------------------------
    Par contre dans l'onglet �v�nements de la Form2, � OnShow j'ai mis FormShow mais justement je ne voie pas pourquoi on peut aussi s�lectionn� FormCreate. Est ce que l'on pourrais m' expliqu� a qoit sert la seconde m�thode? Une derni�re chose, n' h�sitez pas � me donner de plus amples indications, elles sont souvent utile pour approfondir mon code.

    Cordialement.

  4. #4
    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
    Tu peut s�lectionner les deux car les deux m�thode ont le m�me prototype, donc tu peut utilis� n'importe quel fonction ayant le m�me prototype pour les �v�nement ayant besoin de ce prototype. Borland se fout du nom que tu donne � ta fonction, a partir du moment ou elle est dans le prototype voulu.
    Cela veut dire qu'au lieu de cr�� une fonction OnShow qui fera la m�me chose que ton OnCreate, tu peut associ� la m�me fonction au deux evenements, et ton code s'executera alors deux fois, une fois en temps que OnCreate, et une fois en temps que OnShow.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    149
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 149
    Par d�faut
    Tout d'abord, je vous remercie beaucoup pour vos informations qui me permettent d'avanc�e assez rapidement tout en apprenant les subtilit� du C++ sous Borland.

    Pour en revenir au sujet:
    A la limite je pourrais me pass� du OnCreate pour rest� uniquement sur le OnShow. �a fonctionne parfaitement avec OnShow.

    En guise de conclusion:
    Je vais donc clore ce post sachant que le probl�me est donc r�solu
    Cordialement.

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

Discussions similaires

  1. R�ponses: 0
    Dernier message: 15/02/2012, 12h25
  2. [VB6] [Excel] Feuille dans une form, sans excel installé
    Par ro2v dans le forum Installation, D�ploiement et S�curit�
    R�ponses: 3
    Dernier message: 05/05/2010, 12h45
  3. [BCB6]Appel d�une form depuis une form avec showmodal
    Par almisuifre dans le forum C++Builder
    R�ponses: 4
    Dernier message: 13/11/2006, 19h14
  4. [VB6] masquer la barre de titre d'une form
    Par tiboleo dans le forum VB 6 et ant�rieur
    R�ponses: 2
    Dernier message: 09/12/2002, 17h54
  5. [VB6][Formulaire]Appliquer un Scrollbar a une Form
    Par Boil dans le forum VB 6 et ant�rieur
    R�ponses: 3
    Dernier message: 09/11/2002, 03h51

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