Re: Message d'attente pendant un traitement long ..Comment faire ??

Posté par Anonyme le 15/12/2004 9:26:23
Yop,

Faut que je me reveilles de si bon matin :)

Je ne sais pas si l'idée est lumineuse mais je l'utilises depuis longtemps dans mon logiciel et cela marche très bien...

- Déclarer une constante type WM_MYEVT ayant une valeur > WM_USER (genre WM_USER + 0x0A0F, vérifier simplement que la valeur n'est pas déjà utilisée)

[ - Créer une procédure RemplirTable() avec le code de remplissage (dont le FichierVersTableMemoire()) ]

- Créer une procodure WM_Perso(Message, wParam, lParam) avec le code de renvoie :

SI Message=WM_MYEVT ALORS RemplirTable()

[ vous pouvez aussi remplir la table ici ]
[ vous pouvez rajouter des contrôles sur wParam & lParam ]

- Déclarer la gestion de l'évènement dans la fenêtre : Evénement("WM_PERSO", "MyWindow", WM_MYEVT)

- Dans le thread de traitement après l'exécution de la requête faire un PostMessage(Handle(MyWindow), WM_MYEVT, wParam, lParam) pour déclencher le code de remplissage

++ ramses :)

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=1550&post_id=6460