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 :

Problème de spashscreen


Sujet :

Langage Delphi

  1. #1
    Membre confirmé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Points : 612
    Points
    612
    Par défaut Problème de spashscreen
    Salut à vous.
    J'ai un soucis avec mon splashscreen. Voici un extrait du code du projet:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Application.Initialize;
      Fensplash := TFensplash.Create(Application);
      Fensplash.Show;
      Fensplash.Update;
      ...
      Application.CreateForm(TFensplash, Fensplash);
      Fensplash.Close;
      Fensplash.Release;
      Application.Run;
    Puis l'évènement OnCreate du splashscreen
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    procedure TFensplash.FormCreate(Sender: TObject);
    begin
      sleep(3000);
      self.Release; //si je ne le fait pas, le splash reste affiché sur ma fenêtre principale
    end;
    Mais le splash n'est pas détruit à l'apparition de la fenêtre principale et j'ignore pourquoi.
    Quelqu'un pourrait-il m'aider?

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    méthode :
    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
     
    program Project1; 
    uses
    Forms,
    Windows, //Ajout de l'unité "Windows" pour la fonction sleep
    Unit1 in 'Unit1.pas' {Form1},
    Unit2 in 'Unit2.pas' {Form2};
    {$R *.RES}
    begin
     Form2:= TForm2.Create(Application); //Crée la fenêtre Form2
     try 
      Form2.Show; //Affiche Form2
      Application.Initialize; 
      Form2.Refresh; //Redessine Form2
      Sleep(3000); //Attend 3 secondes
      Application.CreateForm(TForm1, Form1);
      Form2.Hide; //Cache la form2
     finally
      Form2.Free; //Libère Form2
     end; 
     Application.Run; 
    end.

  3. #3
    Membre confirmé Avatar de vg-matrix
    Inscrit en
    Février 2007
    Messages
    1 220
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations forums :
    Inscription : Février 2007
    Messages : 1 220
    Points : 612
    Points
    612
    Par défaut
    Quand j'applique votre solution, le splashscreen reste affiché derrière la fenêtre principale. C'est bien visible puisque je suis sous Windows 7.

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 202
    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 202
    Points : 41 443
    Points
    41 443
    Billets dans le blog
    63
    Par défaut
    plutôt que dans le onCreate , j'aurais mis le sleep dans le onActivate
    et rien dans le OnCreate !

  5. #5
    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,

    chose etrange, au départ tu la créée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Fensplash := TFensplash.Create(Application);
    Et tu la recréer...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      Application.CreateForm(TFensplash, Fensplash);
    ???

    Voilà ce que j'utilise et qui fonctionne sur tous les windows

    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
      FSplashScreen := TFSplashScreen.Create(Application); // On crée la fenetre de Splash
      FSplashScreen.Show; // affichage de cette fenetre
      FSplashScreen.Update; // On force l'affichage de la fenetre (sinon elle n'apparait que partiellement)
     
      Application.Initialize;
     
        Application.Title := 'Programme';
     
        FSplashScreen.DebModules; // Procédure interne au Splashscreen
        Application.CreateForm(TFData, FData); // DataModule
        FSplashScreen.FinModules; // Procédure interne au Splashscreen
     
    // ...
     
        FSplashScreen.Close;  // Fermeture la fenêtre de Splash
        FSplashScreen.Release;  // Destruction de la fenêtre
     
        Application.MainFormOnTaskbar := True;
        Application.CreateForm(TFPrincipal, FPrincipal);
     
        Application.Run;
    Ma form Splashscreen ne necessite aucune action dans le OnCreate ou OnClose, ou autre...

    Bye

  6. #6
    Membre expérimenté
    Avatar de Gouyon
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    1 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 1 094
    Points : 1 530
    Points
    1 530
    Billets dans le blog
    5
    Par défaut
    J'ai eu le même problème. Je suis parvenu a mes fins en
    1. mettant ApplicationMainFormOnTaskbar:=false;
    2. En ne générant pas automatiquement la form splashscreen (projet -> options -> Fiches)

Discussions similaires

  1. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  2. Problème d'impression
    Par IngBen dans le forum C++Builder
    Réponses: 7
    Dernier message: 22/05/2002, 11h37
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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