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

 Delphi Discussion :

Création fenêtre MDI, DataModule, SplashScreen, Identification : dans quel ordre ?


Sujet :

Delphi

  1. #1
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut Création fenêtre MDI, DataModule, SplashScreen, Identification : dans quel ordre ?
    Bonjour,

    Je souhaite développer un programme ayant une fenêtre MDI comme fenêtre principale, un DataModule pour la gestion des composants liés aux bases de données, une fenêtre SplashScreen pendant l'initialisation et une fenêtre d'identification avant d'accéder à la fenêtre principale.

    Je suis un peu perdu, comment et dans quel ordre créer les différents objets ?

    Pour le SplashScreen, il sera mis en place de la même manière qu'ici : Comment réaliser un splash screen ?

    J'ai pensé à un fonctionnement comme décrit ci-dessous :
    1. Démarrage du programme
    2. Création du SplashScreen
    3. Affichage du SplashScreen
    4. Création du DataModule
    5. Création de la fenêtre d'identification
    6. Affichage de la fenêtre d'identification
    7. Si identification réussie, création et affichage de la fenêtre principale
    8. Fermeture du SplashScreen


    Qu'en pensez-vous ?

    Avez-vous des conseils ou recommandations concernant ce type de fonctionnement, peut être d'après votre expérience personnelle sur le même type de programme avec identification ?

    Merci,
    ZiP

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Moi cela me parait très bien !

    Par contre pour le SplashScreen et la ConnectDialog, n'utilise pas la méthode Application.CreateForm mais une instanciation via le constructeur ... sinon cela modifie la MainForm et donc cela ne fonctionnerait pas !

    un sujet similaire : Fermeture de Form2 aprés l'activation de la Form1 à la fin je donne une idée de code pour éviter d'avoir un DPR trop long ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    Bonjour,

    Si j'ai bien compris, je dois donc faire :
    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
     
    begin
      Application.Initialize;
      SplashScreen := TSplashScreen.Create(Application);
      SplashScreen.Show;
      SplashScreen.Update;
      Application.CreateForm(TDM, DM);
      if DM.InitializationComplete then
          Identification := TIdentification.Create(Application);
        else
          MessageDlg(Error);
      Application.CreateForm(TMain, Main);
      SplashScreen.Close;
      SplashScreen.Release;
      Application.Run;
    end.
    C'est bien ce genre de code que vous évoquiez pour le Create et CreateForm ?

    Merci,
    ZiP

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 455
    Points : 24 867
    Points
    24 867
    Par défaut
    Effectivement, mais en fait je poussais le vice encore plus loin, c'est d'utiliser des méthodes de classes pour mettre le moins de code dans le DPR, mais comme ça c'est pas mal ...

    tu vas vite ajouter ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        if DM.InitializationComplete then
          Identification := TIdentification.Create(Application);
          try
            if Identification.ShowModal = mrOK then
            else
          finally
            Identification.Free();
          end;
        else
          MessageDlg(Error);
    et tu peux imaginer une méthode de classe qui fait tout bien dans une autre unité


    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
    begin
      Application.Initialize;
      TSplashScreen.ShowSplash(); // dans une autre unité "class procedure TSplashScreen.ShowSplash(); ..." qui fait le Create, le Show, le BringToFront ...
      Application.CreateForm(TDM, DM);
      if DM.InitializationComplete then
      begin
        if TIdentification.Logon() then
          Application.CreateForm(TMain, Main)
        else
          MessageDlg(TIdentification.Error)
      end
      else
        MessageDlg(DM.Error);
     
      SplashScreen.Hide();
      Application.Run;
    end.
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre averti
    Homme Profil pro
    Paramétreur de progiciels
    Inscrit en
    Octobre 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Paramétreur de progiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 970
    Points : 381
    Points
    381
    Par défaut
    héhé

    OK !

    Merci,
    ZiP

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

Discussions similaires

  1. Par où commencer et dans quel ordre ?
    Par Kromagg dans le forum Développement 2D, 3D et Jeux
    Réponses: 4
    Dernier message: 30/01/2009, 20h52
  2. Dans quel ordre se fait l'évaluation
    Par dj.motte dans le forum C
    Réponses: 12
    Dernier message: 22/08/2008, 23h40
  3. Dans quel ordre ranger les vertices ?
    Par legend666 dans le forum OpenGL
    Réponses: 5
    Dernier message: 10/10/2005, 10h01

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