Ecran d'attente (chargement application)

cs_Lilian Messages postés 41 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 16 juillet 2024 - 30 janv. 2002 à 14:44
shervy Messages postés 62 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 15 octobre 2007 - 1 févr. 2002 à 09:49
Salut,

J'ai une application qui met un certain temps à se charger, elle doit récupérer des données sur un serveur, récupérer une liste d'images etc...

Pour faire patienter l'utilisateur, j'aimerais pouvoir lui afficher des messages lui indiquant les étapes du chargement. Il faudrait, quand je lance mon application, qu'un écran apparaisse immédiatement et que je puisse, depuis mon écran principal en chargement, indiquer à l'utilisateur quelle étape s'effectue actuellement...

Comment faire ? Je n'ai pas trouvé d'événement onLoad comme en javascript (l'événement form_load se produit DURANT le chargement mais pas pour indiquer qu'il est terminé).

En fait, si vous avez photoshop, c'est quelque chose comme ça que je désirerais (l'écran d'attente qui fait défiler les éléments en train de se charger).

Merci d'avance
Lilian

4 réponses

shervy Messages postés 62 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 15 octobre 2007
30 janv. 2002 à 16:38
Il doit exister plusieurs solutions mais celle que j'utilise est la suivante :

==================
Partie I
==================
- Ajouter un feuille de type "Ecran d'accueil"
- Soit tu vires tout ce qu'il y a dessus, soit tu utilises les contrôles ET les événements déjà implémentés. Moi perso je vires tout !
- Dans tous les cas Ajoutes un Label (c'est dans celui-là que tu feras apparaitre tes informations)

==================
Partie II
==================
- Dans l'événement Load de ta feuille d'accueil place ton code
- A chaque fois que tu veux modifier le Caption de ton Label (pour avertir l'utilisateur) tu fais l'opération suivante :
...
Label1.Caption = "Mon nouveau message"
DoEvents
...

Et voilà le tour est joué !!!
cs_Lilian Messages postés 41 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 16 juillet 2024
31 janv. 2002 à 11:10
Je te remercie pour ta réponse, mais j'ai du mal à appliquer :-(

Plus concrètement, j'ai une feuille nommée frmListeArticles. Dans l'événement form_load de frmListeArticles, j'effectue divers traîtement relativement longs.

Maintenant, j'ai ajouté une feuille frmSplash (écran d'accueil).

Pour tester, dans frmListeArticles.form_load, j'ai mis :
Load frmSplash
frmSplash.Show vbModal
DoEvents
MsgBox "chargement"

Mais ce qui se passe, c'est que mon msgbox ne surgit que lorsque j'ai cliqué (= fermé) sur l'écran d'accueil. Ca signifie que mon code long a exécuter ne se fait pas pendant que l'utilisateur patiente devant l'écran d'accueil mais après que l'écran d'accueil ait été fermé, ce qui n'est pas vraiment le but.

J'ai essayé de mettre un traîtement dans le form_load l'écran d'accueil mais c'est pareil, l'écran d'accueil ne s'affiche pas tant que ce traîtement n'est pas terminé...

Merci pour ton aide
Lilian
cs_Lilian Messages postés 41 Date d'inscription vendredi 18 janvier 2002 Statut Membre Dernière intervention 16 juillet 2024
31 janv. 2002 à 11:14
Je te remercie pour ta réponse, mais j'ai du mal à appliquer :-(

Plus concrètement, j'ai une feuille nommée frmListeArticles. Dans l'événement form_load de frmListeArticles, j'effectue divers traîtement relativement longs.

Maintenant, j'ai ajouté une feuille frmSplash (écran d'accueil).

Pour tester, dans frmListeArticles.form_load, j'ai mis :
Load frmSplash
frmSplash.Show vbModal
DoEvents
MsgBox "chargement"

Mais ce qui se passe, c'est que mon msgbox ne surgit que lorsque j'ai cliqué (= fermé) sur l'écran d'accueil. Ca signifie que mon code long a exécuter ne se fait pas pendant que l'utilisateur patiente devant l'écran d'accueil mais après que l'écran d'accueil ait été fermé, ce qui n'est pas vraiment le but.

J'ai essayé de mettre un traîtement dans le form_load l'écran d'accueil mais c'est pareil, l'écran d'accueil ne s'affiche pas tant que ce traîtement n'est pas terminé...

Merci pour ton aide
Lilian
shervy Messages postés 62 Date d'inscription lundi 24 décembre 2001 Statut Membre Dernière intervention 15 octobre 2007
1 févr. 2002 à 09:49
Essayes qqch comme çà. Je viens de le tester et je pense que celapourra resoudre ton pb :

Dim i As Long
frmSplash.Show
For i = 1 To 10000
Label1.Caption = i
DoEvents
Next i
frmListeArticles.Show
Unload Me

Ici j'ai mis une boucle For mais tu peux mettre ce que tu veux.
Le seul truc pour que çà marche est qu'il faut écrire
frmSplash.Show
de façon à voir l'écran d'accueil sinon tu ne verras rien !!!
Dernière chose tu ne dois rien mettre (ou tres peu)dans le Load de frmListeArticles... places tout ton code dans le Load de frmSplash ET SURTOUT ne mets pas frmSplash.Show vbModal car la auusi tu ne verras rien.

Allez courage...
Rejoignez-nous