PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2024 → Animation d'attente
Animation d'attente
Started by Yellaine, Oct., 22 2018 6:07 PM - 2 replies
Registered member
19 messages
Posted on October, 22 2018 - 6:07 PM
Bonjour,

Je voudrais faire une animation d'attente pendant un traitement long, du type
//ouverture fenêtre avec GIF
Ouvre(POPUP_Attente)

//traitement de plusieurs secondes
procedure_locale()

Ferme(POPUP_Attente)


Jusqu’ici, j'ai essayé plusieurs choses qui n'ont pas marché et j'ai lu pas mal de posts de forum que je n'ai soit pas compris soit qui n'on pas marché.
- Multitache(-1) : ne semble pas adapté à mon cas
- OuvreFille à la place de Ouvre : débloque la situation mais gèle le GIF
- ThreadExecute: je n'ai pas vraiment compris comment ça marche... Que mettre dans les threads : l'ouverture de la fenêtre, la procédure locale, les deux? Dans quel ordre ?

Je suis un peu perdu...
Posted on October, 23 2018 - 11:15 AM
Bonjour,

Voici un exemple avec utilisation des threads : https://twitter.com/aurek5/status/1054464095662075906

L'idée étant la suivante :
- Ouvrir la fenêtre pour faire patienter l'utilisateur dans le thread principal
- Lancer le traitement dans un thread secondaire
- Une fois le thread secondaire terminé il exécute une procédure pour traiter le résultat du traitement dans le thread principal
Registered member
23 messages
Popularité : +4 (4 votes)
Posted on October, 23 2018 - 11:53 AM
Bonjour,

La fonction ouvre est bloquante.
Ton traitement ne se poursuivra que lorsque la fenêtre sera fermée.

La fonction ouvrefille permet d'ouvrir une fenêtre sans bloquer le traitement.

Dans ton traitement, tu peux faire un FenRepeint() ou un MultiTache(-1).
Le MultiTache(-1) permet de rendre la main à l'application afin de gérer l'affichage et autre...
Le FenRepeint permet de rafraîchir l'affichage de la fenêtre.

Si tu fais une boucle par exemple, tu peux essayer de mettre une de ces fonctions à chaque traitement de ligne.
Ça devrait permettre d'afficher correctement ton gif.
Sinon tu as aussi les jauges infinies qui pourrait faire ce que tu souhaites mettre en place.

https://doc.pcsoft.fr/?1000034001