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

Composants VCL Delphi Discussion :

[MDI] Comment charger une Form fille au démarrage ?


Sujet :

Composants VCL Delphi

  1. #1
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut [MDI] Comment charger une Form fille au démarrage ?
    Salut,

    Je souhaiterais remplacer ma fenêtre de connection (modal) par une fenêtre fille(MDIChild) de la fenêtre principale(MDIForm). Ainsi la fenêtre par défault de ma MDIForm est la fenêtre de login.

    voici comment je charge la MDIChild :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
       with TFrmConnection.Create(Application) do
        Show;
    Mais je n'arrive pas à lancer l'application...
    J'obtiens le message 'Impossible de créer la fiche. Aucune fiche Non MDI active'.
    Je ne comprends vraiment pas ce qui ne fonctionne pas

    Merci,
    CV :
    - LinkedIn
    - Viadeo

  2. #2
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Les fenêtres MDI s'affichent dans une fenêtre mère (non MDI). C'est cette dernière qui doit être créée en premier, ce qui n'a pas l'air d'être le cas.

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut


    de plus la fentre fille mdi doit avoir comme owner et parent
    la fenetre mere et non l'application
    pour creer ta fenetre fait


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     TFrmConnection.Create(self).Show;

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  4. #4
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    salut,

    Pierre Castelain -> Les fenêtres MDI s'affichent dans une fenêtre mère (non MDI).
    Je ne comprends pas, mon application est bientot terminé, et pour un souci d'esthétique, je voulais remplacer la fenetre de connexion par une fille MDI, la fenetre mère est de style fsMDIform et marche bien avec les autres fenetres filles. alors pourquoi enlever MDI ?

    anapurna -> de plus la fentre fille mdi doit avoir comme owner et parent la fenetre mere et non l'application
    bien vu, mais cela ne résoud pas le problème.

    En fait, tout l'ensemble marche si je lance la fenetre fille avec un menu de la fenetre mère. Le problème est comment lancée la fenetre fille lors du lancement de la fenetre mere?
    Je souhaiterais que cette fenetre fille soit la fenetre par default de la fenetre mere.

    merci de votre aide.
    CV :
    - LinkedIn
    - Viadeo

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    non pierre te dit que la fenetre mere et non mdi a l'inverse des
    fenetre fille

    pour ton probleme tu peut tres bien dans le formcreate de ta fenetre mere lancer la creation de ta fenetre fille
    je ne comprend pas ton probleme

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Justement, la ligne de création de la fenetre fille est dans le oncreate de la mere, et j'obtiens ce message d'erreur.
    CV :
    - LinkedIn
    - Viadeo

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    je vient de faire le test effectivement ca plante car la fenetre mere n'est pas encore active pour palier a ça il faut redefinir la methode


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    dans le TFormMain = 
      ....
    procedure Activate;Override;
    ...
    End;
     
     
    procedure TfMain.Activate;
    begin
      inherited Activate;
      Tfrmmdi.Create(Self).Show;
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  8. #8
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Je n'y avais pas pensé mais malheureusement il me sort le meme message d'erreur.
    CV :
    - LinkedIn
    - Viadeo

  9. #9
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 419
    Points : 5 818
    Points
    5 818
    Par défaut
    salut

    a bin la y'a d'autres soucis parceque sur mon appli ça a marché
    parfaitement

    tu fait bien un create(self) et non pas application ?

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  10. #10
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Curieux ca alors ?

    Y a 2 sec ca ne marchait pas... je vérifie les propriétés sans rien changer ... et la ca marche ... : : :

    Encore un mystère qui restera mystère....

    En tout cas, merci beaucoup pour ton aide, cela marche beaucoup mieux.


    A+
    Ben
    CV :
    - LinkedIn
    - Viadeo

  11. #11
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Attention avec l'événement Activate, celui-ci est déclenché à chaque fois que la fenêtre redevient active et non pas une seule fois.

  12. #12
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    merci,
    j'utilise l'événement OnCreate de la fenetre mere pour charger cette fenetre. Ca marche impeccable.

    A bientot
    ben
    CV :
    - LinkedIn
    - Viadeo

  13. #13
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut

    rectification : La fenetre se charge en tant que fenetre indépendant et non MDIChild.

    Ne peut-on pas créer de fenêtre fille au démarrage ?

    (car toutes les autres fenetres filles MDI sont accessible depuis le menu et fonctionnent très bien)
    CV :
    - LinkedIn
    - Viadeo

  14. #14
    Membre expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Points : 3 256
    Points
    3 256
    Par défaut
    Ca y est, j'ai trouvé, la fiche principale doit avoir sa propriété Visible à False.

    Donc, je résume pour ceux qui rencontreront le même problème.
    (cad le message 'Impossible de créer la fiche. Aucune fiche Non MDI active')


    Lors du développement d'une application MDI.
    - La fenetre principale doit avoir les options suivantes :
    FormStyle := fsMDIform,
    Visible := False,
    - La fenetre fille à lancer au démarrage doit etre ainsi :
    FormStyle := fsMDIChild,
    Visible := True.

    Pour le chargement de la fenêtre au démarrage, il fat agir sur le MaFenetrePrincipal.OnShow.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    procedure MaFenetrePrincipal.FormShow(Sender: TObject);
    var
      Bcl : integer;
    begin
      for Bcl := 0 to MDIChildCount-1 do
        if (MDIChildren[Bcl] is TFrmConnection) then begin
          MDIChildren[Bcl].BringToFront;
          MDIChildren[Bcl].WindowState := wsMaximized;
          Exit;
        end;
     
       TFrmMaFenetreFille.Create(Self).Show;
    Et voila !

    Merci à tous ceux qui m'ont aidés.
    A bientot et bon dev
    Ben
    CV :
    - LinkedIn
    - Viadeo

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

Discussions similaires

  1. [VB.NET]Comment Imprimer une form
    Par bernard06 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/10/2011, 17h43
  2. Comment masquer une form au démarrage
    Par duffi dans le forum C#
    Réponses: 4
    Dernier message: 07/04/2011, 12h11
  3. comment rendre une form une feuilles MDI
    Par NAIMA2 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/01/2007, 20h17
  4. Comment Charger une Form?
    Par vantoff dans le forum C++Builder
    Réponses: 3
    Dernier message: 12/07/2006, 09h44
  5. Comment faire une Form MDI dynamiquement modale ?
    Par eponette dans le forum Composants VCL
    Réponses: 5
    Dernier message: 30/09/2005, 10h14

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