Mettre un mpessage d'attente pendant une "action"

cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 14 déc. 2009 à 15:40
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 - 15 déc. 2009 à 10:11
Bonjour,
je voudrais mettre un message d'attente pendant que le programme fait des "actions" ( ex: sauvegarde d'une base de données)

mais je rencontre un probleme.

Je crée un form_message d'attente qui contient un progressbar style marquee
je fais show()
puis je lance ma sauvegarde
la fenetre apparait bien mais elle est tte blanche, on ne voit ni le message , ni le progressbar
(en fait on la voit bien une fois la sauvegarde terminéee unqiuement)
Deja j'aimerais savoir comment faire pour l'afficher correctement pendant ces "actions" (on peut tjrs en avoir l'utilité pour rendre le programme un peu plus "beau")

Je voudrais savoir si il y a un composant qui remplace aussi la progressbar classique
genre le truc en cercle qui tourne que l'on peut voir sur internet puisqu'en fait je ne veux pas vraiment donner une estimation du temps que l'action va prend mais juste mettre un petite animation avec un message pour faire patienter l'utilisateur

Merci

9 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 déc. 2009 à 16:50
Salut

Pour forcer l'actualisation de l'affichage, tu peux faire
Application.DoEvents();


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
JeremyLecouvert Messages postés 139 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 10 mai 2010 2
14 déc. 2009 à 17:05
'lut,

Pour le p'tit motif je sais pas, mais pour rafraichir l'affichage, tu peux utiliser la méthode Application.DoEvents(), placée au bon endroit (par exemple après chaque itération d'une boucle, ou après l'affichage d'un message). Cette méthode rend la main à Windaube pour qu'il traite ses messages.

Le mieux étant quand même d'exécuter ton traitement dans un thread séparé pour ne pas figer ton IHM... mais c'est plus de boulot!

Si l'envie te prend de travailler, assied-toi et attend qu'elle te passe! (vieux -et faux!- dicton corse)
0
JeremyLecouvert Messages postés 139 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 10 mai 2010 2
14 déc. 2009 à 17:13
Woups, y'a eu + rapide que moi!

Si l'envie te prend de travailler, assied-toi et attend qu'elle te passe! (vieux -et faux!- dicton corse)
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 déc. 2009 à 17:19
Plus rapide mais moins détaillé ;)

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0

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

Posez votre question
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 2
15 déc. 2009 à 06:07
Oui j'avais utilisé les threads une fois mais je ne me souviens plus comment ...j'ai pas pu retrouver mon code et je cherchais une maniere simple
vous ne voyez pas de quoi je parle au sujet du ptit rond (comme une petite horloge dont les "batons" se colorent au fu r et a mesure et redeviennent gris...
0
JeremyLecouvert Messages postés 139 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 10 mai 2010 2
15 déc. 2009 à 09:59
Si je vois très bien, comme par exemple le curseur de chargement dans IE, Mais je peux pas t'aider là-dessus!
Au + simple, tu peux mettre dans ton formulaire un
this.UseWaitCursor=true
au début du traitement et le remettre à false à la fin... tu peux aussi récupérer le curseur que tu veux si tu le trouves quelque part, ou en créer un, et utiliser this.Cursor= MonCurseur.

Bonne prog!

Si l'envie te prend de travailler, assied-toi et attend qu'elle te passe! (vieux -et faux!- dicton corse)
0
JeremyLecouvert Messages postés 139 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 10 mai 2010 2
15 déc. 2009 à 10:02
..Ah non, pardon, j'ai lu petit rond, mais pas horloge! => crée-toi un curseur animé (à moins que tu en trouves un tout fait!)


Si l'envie te prend de travailler, assied-toi et attend qu'elle te passe! (vieux -et faux!- dicton corse)
0
JeremyLecouvert Messages postés 139 Date d'inscription mardi 27 novembre 2007 Statut Membre Dernière intervention 10 mai 2010 2
15 déc. 2009 à 10:04
Petite précision tout de même: si tu utilises un curseur animé, il risque de ne s'animer que par à-coups si ton traitement tourne dans le même thread que l'IHM... à voir!
Promis j'ai fini!



Si l'envie te prend de travailler, assied-toi et attend qu'elle te passe! (vieux -et faux!- dicton corse)
0
cudenetf Messages postés 448 Date d'inscription mardi 20 septembre 2005 Statut Membre Dernière intervention 26 juillet 2012 2
15 déc. 2009 à 10:11
j'ai un exemple concret le petit rond de chargement d'un onglet firefox ..(au niveau de l'onglet meme)
0
Rejoignez-nous