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 :

Le SplashScreen et message utilisateur


Sujet :

Langage Delphi

  1. #1
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut Le SplashScreen et message utilisateur
    Bonjour à toutes et à tous,

    Voilà j'utilise le splashscreen comme décris dans la FAQ.
    Elle fonctionne parfaitement.

    Maintenant j'aimerais écrire des informations sur mon Splashscreen, je fais cela

    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
    procedure TFSplashScreen.FormCreate(Sender: TObject);
    begin
      Label5.Caption := Label5.Caption + ' : ' + ApplicationVersion;
     
      Label1.BringToFront;
      Label2.BringToFront;
      Label3.BringToFront;
    end;
     
    procedure TFSplashScreen.FormShow(Sender: TObject);
    begin
        Label1.Caption := 'Contrôle version disponible...';
        Update;
        SLEEP(2000);
    // autres traitements ...
    end;
    Mais ma fenêtre Splashscreen n'apparait pas desuite, elle se montre uniquement apres le sleep(2000) et bien sur on ne voit rien des informations de démarrage de mon sofT.

    Comment puis-je faire pour ecrire à l'intérieur de mon splashscreebn certain travaux de démarrage que j'execute avant le run de l'application et que l'utilisateur voit ce qu'il se passe ?

    Merci de votre aide.

  2. #2
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    A quoi il te sert ce sleep(2000) ?*

    Car c'est lui qui retarde la fin du formShow et donc l'affichage effectif de la form.

  3. #3
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    salut,

    @peter : C'etait juste pour tester...

    Mais j'ai solutionné mon problème.

  4. #4
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Pour info

    j'ai failli oublié

    dans le dpr j'ai ajouter cela (en rouge) ;

    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
      FSplashScreen := TFSplashScreen.Create(Application); // On crée de la fenetre de Splash
      FSplashScreen.Show; // On affichage de cette fenetre
    
      Application.Initialize;
    
      FSplashScreen.Update; // On force l'affichage de la fenetre (sinon elle n'aparait que partiellement)
      FSplashScreen.Init(nil);
    
      Application.CreateForm(TDataModule1, DataModule1);
      Application.CreateForm(TFPrincipal, FPrincipal);
    
      FSplashScreen.Close;    { Fermeture la fenêtre de Splash              }
      FSplashScreen.Release;   { Destruction de la fenêtre                   }
    
      Application.Run;
    et dans l'unité SplashScreen :

    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
    procedure TFSplashScreen.Init(Sender: TObject);
    Var
      Versionning: String;
    begin
        Label1.Caption := 'Recherche nouvelle version...';
        Update;
        Versionning := AnsiReplaceStr(VersionDispo(''),'-','.');
        if  Versionning = ApplicationVersion then
        Begin
        Label1.Caption := 'Dernière version : ' + Versionning + ' - votre version est à jour.';
        Label2.Caption := 'Chargement des modules...';
        Update;
        sleep(1000); // Pour l'instant
        Label2.Caption := 'Chargement des modules.';
        Label3.Caption := 'Démarrage.';
        Update;
        sleep(1000); // Pour l'instant
        Label3.Caption := 'Démarrage..';
        Update;
        sleep(1000); // Pour l'instant
        Label3.Caption := 'Démarrage...';
        Update;
        sleep(1000); // Pour l'instant
        end
        else
          application.Terminate;
     
    end;
    D'ailleur si vous constatez une grosse bétise n'hésité pas.


  5. #5
    Membre éclairé Avatar de peter27x
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 029
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 029
    Points : 757
    Points
    757
    Par défaut
    Ok, mais ça c'est le init(), tu as quoi maintenant dans le formShow ?

    edit : C'était pas le sleep(2000) qui justement causait tout ton pb ? J'ai pas bien pigé !

  6. #6
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Citation Envoyé par peter27x Voir le message
    Ok, mais ça c'est le init(), tu as quoi maintenant dans le formShow ?

    edit : C'était pas le sleep(2000) qui justement causait tout ton pb ? J'ai pas bien pigé !
    En fait au début je n'avais pas pensé à executer une procedure apres le show, donc je me prenais la tête à vouloir faire mon travail dans le show du splashscreen (mais je te rassure ce n'était pas un sleep que j'avais, j'ai mis cela ici pour faire plus simple).

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

Discussions similaires

  1. Réponses: 31
    Dernier message: 01/08/2014, 16h53
  2. Message utilisateur sans bouton
    Par benoguiz dans le forum LabVIEW
    Réponses: 2
    Dernier message: 22/07/2009, 09h41
  3. Message utilisateur + exception
    Par ricky78 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 29/10/2007, 09h46
  4. TrayIcon et message utilisateur
    Par Nyphel dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 30/01/2007, 15h42
  5. [POSTS] Nombres de messages d'un utilisateur
    Par Maxoo dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 6
    Dernier message: 05/03/2006, 07h32

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