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

C++/CLI Discussion :

SplashScreen avec Form2


Sujet :

C++/CLI

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre tr�s actif
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    254
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 254
    Par d�faut SplashScreen avec Form2
    Bonjour, malgr� toutes mes recherches sur Google je n'arrive toujours pas a cr�er un Splashscreen pour mon application.
    Dans mon appli j'ai 2 Formulaires Form1 et SPL ,
    Dans Form1 j'ai mis :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include "SPL.h"
    #pragma endregion
    	private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
    				Form1::Hide();
    		 		SPL^ form = gcnew SPL();
    				form->Show();
    						 }
    Dans Form2:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    	private: System::Void timer2_Tick(System::Object^  sender, System::EventArgs^  e) {
    	for (double dblOpacity = 1; dblOpacity > 0; dblOpacity += -0.05)
    	{
    	Opacity = dblOpacity;
    	Refresh();
    	System::Threading::Thread::Sleep(50);
    		 }
        this->Close();
    Les 2 Form s'affiche au d�marrage mais je voudrai masquer temporairement Form1 pour ne laisser que la Form2 le temps de Timer1 qui est dans Form2.
    J'ai test� plusieurs methodes dont Form1::Hide(); mais impossible de masquer Form1.
    Merci de votre aide

  2. #2
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Vous faite une attente active dans votre boucle et vous bloquez le thread graphique avec "System::Threading::Thread::Sleep(50);".

    Utilisez votre timer pour lancer plusieurs fois la mise � jour de votre Splash Screen et c'est au dernier appel que vous appelez "Close".
    Donc pas de "for" mais appels multiples � la m�thode timer2_Tick.

    Votre Spash Sceen sent un peu le bricolage.

    http://www.reflectionit.nl/Articles/Splash.aspx

  3. #3
    Membre tr�s actif
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    254
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 254
    Par d�faut
    Pardon d'�tre novice mais je crains ne pas comprendre ce que tu me dis, aurais tu un petit exemple qui reprendrait mon mon SplashScreen de l'Espace
    Je sais sais du bricolage mais je ne suis pas encore en mesure d'en cr�er un vrais car je manque de pratique et de formation car je fais �a � titre perso en loisirs.
    Donc je fais � mon niveau
    Merci d'avance!!

  4. #4
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    Vous bloquez le thread graphique avec "System::Threading::Thread::Sleep(50);" donc votre affichage de l'application.

    Utilisez l'exemple du lien que je vous ai fourni.
    Il devrait contenir le code source si vous �tes curieux du comment c'est fait.

  5. #5
    Membre tr�s actif
    Profil pro
    Inscrit en
    D�cembre 2007
    Messages
    254
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 254
    Par d�faut
    Merci pour le lien, mais il semblerai que la class SplashApplicationContext ne soit pas possible en c++ ou alors j'ai pas su trouver car j'ai impl�ment� dans toutes les formes possible mais toujours la m�me erreur:
    C2061: erreur de syntaxe*: identificateur 'SplashApplicationContext'


    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    SplashApplicationContext^ myContext  = gcnew SplashApplicationContext(gcnew Form1(), gcnew SplashForm(), 2000);
    Dans le lien ils remettent ce code mais avec une intervalle de 0 pour arr�ter le timer, l� je comprend pas ou enserrer cet arr�t du Timer , � la suite du pr�c�dent dans Form1.h?
    Merci

  6. #6
    Expert confirm�
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    F�vrier 2005
    Messages
    5 504
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : France, Val de Marne (�le de France)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : F�vrier 2005
    Messages : 5 504
    Par d�faut
    class SplashApplicationContext ne soit pas possible en c++
    Le C++/CLI permet de faire des choses que les autre langages .NET ne peuvent pas faire. Tout ce que peut faire un langage .NET est faisable en C++/CLI.

    C2061: erreur de syntaxe*: identificateur 'SplashApplicationContext'
    N'oubliez pas les r�f�rences d'assemblies et les namespaces.
    SplashApplicationContext est dans le namespace "ReflectionIT.Windows.Forms".

    Dans le lien ils remettent ce code mais avec une intervalle de 0 pour arr�ter le timer, l� je comprend pas ou enserrer cet arr�t du Timer , � la suite du pr�c�dent dans Form1.h?
    Jetez un coup d'oeil au source. Vous verrez que le fait de mettre 0 � la place de 2000, oblige le SplashSreen � se fermer lui-m�me.
    Essayez de comprendre un peu le code C# et vous pourrez faire la m�me chose en C++/CLI.
    Si vous ne voulez pas utiliser le code source C# pour en faire une assembly que vous utiliseriez directement, bien s�r.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. SplashScreen avec image splash dans themepack
    Par denamaf dans le forum AWT/Swing
    R�ponses: 1
    Dernier message: 11/09/2008, 08h40
  2. SplashScreen avec fondu
    Par lili2008 dans le forum Langage
    R�ponses: 3
    Dernier message: 15/07/2008, 18h55
  3. SplashScreen avec progressbar
    Par JAVIR dans le forum AWT/Swing
    R�ponses: 9
    Dernier message: 21/09/2007, 22h13
  4. R�ponses: 3
    Dernier message: 22/06/2006, 17h39
  5. R�ponses: 6
    Dernier message: 05/05/2006, 11h04

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