Bonjour,
J'ai un petit problème avec la fermeture d'une fiche modale depuis un Thread : En faite la fiche modale n'est qu'une petite fenêtre affichant une jauge de progression, tant que mon traitement n'est pas encore fini , la jauge est entrain d'avancer. Une fois fini , je dois fermer cette fiche modale.
J'ai prévu une petite procédure qui intercepte le message :
Rien de spécial dans cette procédure car elle passe mon ModalResult à mrOk
Code : Sélectionner tout - Visualiser dans une fenêtre à part procedure HandleModalOk(var Msg : TMessage); message WM_USER + 1;
A la fin de mon traitement sur le thread j'envoie le message suivant avec un SendMessage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 procedure TFGauge.HandleModalOk(var Msg: TMessage); Begin ModalResult := mrOK; End;sachant que FGauge est passé comme paramètre du constructeur de mon Thread au constructeur de ma classe métier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part SendMessage(FGauge.Handle, WM_USER+1, 0, 0);
En déboguant, le SendMessage fait bien son boulot en passant dans mon HandleModalOk et mon ModalResult est à mrOk MAIS ma fenêtre n'est pas fermée. j'ai essayé avec le PostMessage , puis le Perform mais toujours pas d'impact sur la fermeture de ma fiche.
J'ai posé un TButton sur la fenêtre de progression avec un ModalResult est à mrOk , je clique : la fenêtre se ferme ( comportement normal ) , dans HandleModalOk : je lance le Click du Bouton mais la fenêtre de se ferme pas .
J'ai l'impression que le message est bien envoyé mais il n'est pas interprété puisque la commande : ModalResult := mrOk n'a aucun impact aussi.
Ma question est : comment obliger la fermeture de cette fenêtre modale à la fin de traitement ?
Merci d'avance
Partager