[C#] Splash Screen

Résolu
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008 - 20 mai 2005 à 11:33
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008 - 20 mai 2005 à 16:11
Hello !

J'aimerais creer un splash screen qui ne sert pas uniquement au design
mais qui charge le programme avec une barre de progression.

De plus, j'aimerais qu'il s'affiche lorsque le programme est en fond. (un peu comme photoshop ou blender).

Merci
A voir également:

18 réponses

MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 16:11
Non ben c'est bon j'ai réussi a faire un truc qui ressemblé à ce que je voulais faire.

En fait au lieu de marquer les elements qui se chargent, je regle
mon timer afin d'enlever mon fensplash quand les elements sont chargés.
Comme tout le monde n'a pas le meme processeur, il y'ora peut etre
quelque seconde de décalage mais bon c'est pas grave sa se verra pas.
3
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 mai 2005 à 11:42
Salut,
Tu peux jeter un oeil sur cette source (fait une recherche sur le site avant).
http://www.csharpfr.com/code.aspx?id=11410

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 11:52
Merci mais elle me sert arien cette source.

Elle ne charge pas l'application.
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 mai 2005 à 11:58
J'espère que tu attends quand même pas que qqn le fasse pour toi ?

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 12:02
euh non je veux pas qu'on le fasse pour moi. je demande juste un peu d'aide. Et c'est pas en me disant ça que tu m'aide !
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 mai 2005 à 12:12
Presque tout le travail est fait sur cette source, faut pas attendre un truc tout fait non plus...
Bon sinon avec une progressBar y'a toujours ceci : http://www.codeproject.com/csharp/PrettyGoodSplashScreen.asp

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 mai 2005 à 12:29
Je procéderais ainsi :



Lancement de la splash screen depuis le l'evenement Load de ta form principal



private void form_Load(object sender, EventArgs e)

{

this.Hide();

SplashScreen sc = new SplahScreen();

sc.ShowDialog();

}



Ensuite dans ta SplahScreen, tu lances ton Thread qui fera ce que tu
veux faire. En gardant a l'esprit que si tu veux modifier des choses
sur ta form principale, il faudra que tu utilises des BeginInvoke()
avec un delegué (interdit d'acceder a des propriétés / variables / etc
entre les Threads).



Tu peux mettre ces propriétés de ton SplashScreen



this.ControlBox = false;


this.FormBorderStyle =
System.Windows.Forms.FormBorderStyle.None;




Et overrider la méthode OnPaint pour y dessiner un contours.

Pense aussi a overrider l'evenement Closing et d'y annuler la fermeture
de ta SplashScreen tant qu'elle a pas fini de faire ton travail, sinon
il suffira d'un ALT+F4 pour la fermer.



En gros je crois que c'est tout



Mx
0
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 12:31
Merci pour la source. Je l'avais déjà telecharger mais je n'arrive pas a la débogger.

Visual Studio m'affiche un message d'erreur et parle d'URL mais j'ai pas compris.

Si tu arrive a la débogger tu peux me dire comment faire stp.
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 mai 2005 à 12:39
Y'a aucune erreur, tu dois juste passer le second projet en projet de
demarrage, sinon il va vouloir executer une bibliotheque de classe
(autrement dit, une dll), et ca, ca peut pas marcher

Mx
0
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 12:43
Je sais bien ke je suis nul mais ça veut dire quoi passer le second projet en projet de demarrage?

Je dois faire comment?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 mai 2005 à 12:44
Mouais, et au premier démarrage y'a pas de progressBar, parce qu'il doit écrire des valeurs dans la base de registre. Ca marche seulement après

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 mai 2005 à 12:45
Touche de droite sur le deuxième project et ensuite
"Set as startup project"

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 mai 2005 à 12:46
Clic droit sur le second projet qu'il y a dans l'explorateur de
solution (TestIt je crois) -> Définir comme projet de démarrage
(Avec visual Studio, tout du moins)



Mx
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
20 mai 2005 à 12:47
Qui pour la version Espagnole ?

Mx
0
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 12:51
excellent j'arrive a le faire marcher.

Je vais essayer d'en faire autant dans mon projet.

Merci
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
20 mai 2005 à 12:53
derecho chasque encendido el segundo proyecto y entonces
"fije como proyecto de lanzamiento"

lol.

Sinon je pense que d'inscrire des valeurs dans la registry pour un splashscreen, c'est pas droit ça.
La progressBar devrait plutôt avancée en fonction de l'avancement du chargement qui est effectué dans l'autre Thread (pas besoin d'écrire quoique ce soit ou que ce soit).

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
cs_GBESS Messages postés 2 Date d'inscription dimanche 22 septembre 2002 Statut Membre Dernière intervention 20 mai 2005
20 mai 2005 à 12:57
on dirait que t'as pas besoin d'aide. ce qu'on t'a donné est largement suffisant même pour un nul.
0
MickParadiseLost Messages postés 86 Date d'inscription samedi 26 février 2005 Statut Membre Dernière intervention 2 avril 2008
20 mai 2005 à 12:59
Il y'a ceci dans le code de la form1.



SplashScreen.SetStatus("Loading module 6");

System.Threading.Thread.Sleep(50);

SplashScreen.SetStatus("Loading module 7");

System.Threading.Thread.Sleep(240);

SplashScreen.SetStatus("Loading module 8");

System.Threading.Thread.Sleep(900);

SplashScreen.SetStatus("Loading module 9");

System.Threading.Thread.Sleep(240);

SplashScreen.SetStatus("Loading module 10");

System.Threading.Thread.Sleep(90);



ça veut dire quoi?

enfin je sais ce que ça veut dire mais en fait ça charge pas vraiment les modules X. C'est juste pour faire bien non?
0
Rejoignez-nous