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

Langage Delphi Discussion :

Mettre un écran d'accueil au chargement d'un programme


Sujet :

Langage Delphi

  1. #1
    Membre habitué

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 199
    Points : 129
    Points
    129
    Par défaut Mettre un écran d'accueil au chargement d'un programme
    Bonsoir à tous,

    Je suis tombé sur la source suivante et je me suis dis "chouette, c'est super pour faire patienter"

    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
    program Project1;
     
    uses
      Forms,
      Unit1 in 'Unit1.pas' {Form1},
      Unit2 in 'Unit2.pas' {Form2},
      Unit3 in 'Unit3.pas' {Form3},
      Unit4 in 'Unit4.pas' {Form4},
      Unit5 in 'Unit5.pas' {Form5},
      Unit6 in 'Unit6.pas' {Accueil};
     
    {$R *.RES}
     
    begin
      Application.Initialize;
      // Creation de la form Accueil
      with TAccueil.Create(nil) do
      try
        Show;   // Affiche l'écran de démarrage Accueil
        Update; // Force l'affichage  de Accueil
        // Creation des autres forms
        Application.CreateForm(TForm1, Form1);
        Application.CreateForm(TForm2, Form2);
        Application.CreateForm(TForm3, Form3);
        Application.CreateForm(TForm4, Form4);
        Application.CreateForm(TForm5, Form5);
      finally
        Free;  // ferme et libère l'écran de démarrage Accueil
      end;
      Application.Run;
    end.
    J'ai juste rajouté Application.ProcessMessages après le Show, car j'avais un carré gris à la place de la fenêtre.

    Mais ... je suis confronté à 2 soucis :
    1) contrairement à ce qui est dit dans la conclusion du post, impossible de rafraichir mon label, il marque le message du début et il ne change pas malgré l'utilisation de repaint parce qu'update ne fonctionnait pas. J'ai rajouté Application.ProcessMessages, rien y fait.

    2) plus embêtant, lorsque la fiche principale s'ouvre, l'écran d’accueil n'est pas libéré, il est toujours là. J'ai essayé de mettre sa propriété en visible:=false avant de faire un free, rien, j'ai rajouté Application.ProcessMessages, rien. J'ai essayé de mettre visible à false lors de l'affichage de la 1ere fiche, mais en suivant le code, il le voit déjà à false, donc rien non plus.

    Heuuu .... y a t-il une solution (autre ou pas) pour faire un écran d’accueil qui s'éteigne quand le programme est lancé ?

  2. #2
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    773
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 773
    Points : 500
    Points
    500
    Par défaut
    bonjour,

    Comme tu le vois dans ton exemple, cette fenêtre d'attente est crée en dans le programme principal et avant la création des autres fiches de ton projet, et cela devrait fonctionner..
    J'utilise aussi cette méthode assez proche, mais ma fenêtre d'attente est crée en dynamique et pour modifier son contenu (comme afficher une progression...) j’exécute ces modifications dans les "Oncreate" des fiches suivantes.. donc ces modifications sont exécutées durant les créations de ces fiches.
    Pour fermer ensuite cette fenêtre d'attente, tu dois la fermer dans le programme principal par exemple à la fin de toutes les créations des fiches.

    bonne soirée

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 268
    Points : 41 671
    Points
    41 671
    Billets dans le blog
    64
    Par défaut
    Bonjour,

    il faut faire des recherches avec le mot clé splashscreen pour avoir plus d'informations sur le net.

    ici un exemple avec comme premier écran FORMPASS un slapshscreen qui demande un mot de passe
    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
     
    program SuiviPaiements;
     
    uses
     ...
      FonctionsCommunes in '..\FonctionsCommunes.pas',
      MainUnit in 'MainUnit.pas' {Main},
      UnitDatas in 'UnitDatas.pas' {Datas: TDataModule},
      UnitParam in 'UnitParam.pas' {FormParam},
      UnitParamConnexion in 'UnitParamConnexion.pas' {FormConnexion},
      UnitPaiements in 'UnitPaiements.pas' {FormPaiement},
      UnitParamSQL in 'UnitParamSQL.pas' {FParamSQL},
      UnitSplash in '..\UnitSplash.pas' {FormSplash},
      UnitHistorique in 'UnitHistorique.pas' {FormHistorique},
      UnitPass in 'UnitPass.pas' {FormPass},
      UnitRelance in 'UnitRelance.pas' {FormRelance},
      UnitTableauBord in 'UnitTableauBord.pas' {FormTableauBord},
      ListViewSearchAdapter in '..\ListViewSearchAdapter.pas',
      SearchListViewInterface in '..\SearchListViewInterface.pas';
     
    {$R *.res}
     
    begin
      Application.Initialize;
      FormPass := TFormPass.Create(nil) ; // saisie + controle mot de passe (3 essais)
      if FormPass.ShowModal=1 then
        begin
         FormPass.Free;
         Application.CreateForm(TFormSplash, FormSplash); // splashscreen suite, simple temporisation mais qui va charger la forme principale du projet 
         Application.Run;
        end
      else FormPass.Free;
    end.
    A remarquer, je ne suis pas un adepte de création de toutes les formes de l'application

  4. #4
    Membre habitué

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Bonjour petitcoucou31
    Bonjour SergioMaster (6h41 ce matin ... wouahhh)

    Merci à tous les 2.
    J'ai fait une recherche sur "splashscreen" et je suis tombé sur un petit tuto qui disait de déplacer le formulaire de la zone de liste "Fiches créées automatiquement" vers "Fiches disponibles".
    Et bingo, ça a fonctionné.
    Maintenant il faut que je cherche la différence entre les 2 car je n'ai jamais prêté attention à ça. Je mets tout en fiches crées automatiquement ...

    Le code de SergioMaster m'ouvre des perspectives, je ne savais pas que l'on pouvait utiliser cette partie du programme.

    Merci à tous les 2.
    Je note la remarque de SergioMaster sur la possibilité de créer les forms quand on en a besoin ... du coup, j'imagine que ça allège la mémoire (?)

  5. #5
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 268
    Points : 41 671
    Points
    41 671
    Billets dans le blog
    64
    Par défaut
    Citation Envoyé par patrice@ Voir le message
    SergioMaster (6h41 ce matin ... wouahhh)
    je suis un lève tôt, mais aussi un couche tôt (douleurs obligent)

    Le code de SergioMaster m'ouvre des perspectives, je ne savais pas que l'on pouvait utiliser cette partie du programme.
    disons plutôt utiliser le source du projet.

    Je note la remarque de SergioMaster sur la possibilité de créer les forms quand on en a besoin ... du coup, j'imagine que ça allège la mémoire (?)
    pas que, cela évite aussi des fenêtres inaccessibles parce que cachées derrière d'autres, un truc qui m'a toujours énervé

    Va faire un tour sur mon tuto les diverses techniques pour "enchainer" les formes

  6. #6
    Membre habitué

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Merci SergioMaster,

    Effectivement, je comprends mieux. Très bon tuto
    Mais alors, les fiches qui sont créées plus tard dans le programme, on doit les mettre dans quelle liste : "Fiches créées automatiquement" ou "Fiches disponibles"

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 268
    Points : 41 671
    Points
    41 671
    Billets dans le blog
    64
    Par défaut
    Très bon tuto
    Merci tout encouragement est bienvenu car il n'est pas si facile que ça de rédiger des tutoriels ou même des billets.

    Pour répondre à la question : Dans les fiches disponibles, en passant par les options du projet, soit en modifiant le source du projet en enlevant les Application.createform(....)

  8. #8
    Membre habitué

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Merci SergioMaster, je pense que je comprends mieux ...

    Si je résume :
    - dans la liste "Fiches créées automatiquement" nous allons trouver les fiches créées dans le source du projet par Application.createform(....)
    - dans la liste "Fiches disponibles" nous allons avoir les fiches créées ailleurs dans le programme (par appuie sur un bouton ou autre)

    Et pour un splashscreen, la fiche doit être dans la liste "Fiches disponibles" car c'est nous qui appelons sa création dans le source du projet.

    C'est bien résumé ?

  9. #9
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 268
    Points : 41 671
    Points
    41 671
    Billets dans le blog
    64
    Par défaut
    Absolument (à l'eau)

  10. #10
    Membre habitué

    Homme Profil pro
    Direction financière et formateur en gestion et contrôle de gestion
    Inscrit en
    Mai 2003
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Direction financière et formateur en gestion et contrôle de gestion
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2003
    Messages : 199
    Points : 129
    Points
    129
    Par défaut
    Et bien voilà une interrogation brillamment résolue.
    Merci SergioMaster de tout tes éclaircissements.
    Et si ça peut aider quelqu'un d'autre ... c'est super!

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

Discussions similaires

  1. Proposer au visiteurs de mon site de le mettre en page d'accueil.
    Par juan_di_nissa dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/02/2007, 16h47
  2. Mettre en page d'accueil
    Par tyarak dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/01/2007, 17h38
  3. Ecran d'accueil XP
    Par cbo59 dans le forum Windows
    Réponses: 6
    Dernier message: 23/06/2004, 18h54
  4. Comment faire pour mettre l'ecran en veille ?
    Par March' dans le forum MFC
    Réponses: 6
    Dernier message: 29/08/2002, 15h25

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