J'ai écrit un script, que j'utilise en include, dans lequel j'utilise une fonction enregistrée pour gérer le bouton "Annuler" de ma GUI :
GUIRegisterMsg(0x0111, "BarreAttente_WM_COMMAND")
Sans entrer dans le détail, je suis obligé d'en passer par là au lieu d'un simple GUIGetMsg() mais là n'est pas le souci.
Cette fonction fonctionne très bien et intercepte l'utilisation du bouton "Annuler" par son identifiant, son controlID.
Le code suivant l'utilisation de ce bouton affiche une table en utilisant _ArrayDisplay(). Cela fonctionnait aussi jusqu'au jour où la table ne s'est pas affichée
 . Après moult recherches et pistage de bug j'ai enfin trouvé
 . Après moult recherches et pistage de bug j'ai enfin trouvé   :
 :Le controlID de mon bouton "Annuler" est récupéré par _ArrayDisplay() à son exécution via GUIGetMsg() dans sa boucle de gestion des événements "While 1 ... Wend" et correspond au controlID de son bouton "Exit" ! D'où l'absence d'affichage.
Je ne comprends pas bien pourquoi.
 Est-ce parce que je l'ai intercepté via une fonction enregistrée et non un GUIGetMsg() et qu'ainsi l'événement est resté actif ? Si quelqu'un a une idée, une piste, je suis preneur.
 Est-ce parce que je l'ai intercepté via une fonction enregistrée et non un GUIGetMsg() et qu'ainsi l'événement est resté actif ? Si quelqu'un a une idée, une piste, je suis preneur.Toujours est-il que ce n'est pas un bug de ma part. C'est une situation certes pas fréquente mais possible, la preuve.
Pour éviter ce problème il faut tester l'handle de la fenêtre ayant émise l'événement dans _ArrayDisplay(). C'est si peu fréquent que les codeurs ont simplement utilisé, comme je le fais aussi systématiquement :
Code : Tout sélectionner
 $iMsg = GUIGetMsg()Code : Tout sélectionner
 Local $aMsg = GUIGetMsg(1)
 $iMsg = $aMsg[0]
 If $iMsg > 0 And $aMsg[1] <> $hGUI Then $iMsg = 0D'où ma 2ème question :
 Comment partager, faire étudier, peut-être valider et modifier le code de cet UDF ?
 Comment partager, faire étudier, peut-être valider et modifier le code de cet UDF ?






 j'ignore comment le mettre en fin de mon post !
  j'ignore comment le mettre en fin de mon post ! 
  
 que tu n'as pas testé la correction que tu proposes ! Certes le ControlId du bouton "Annuler" n'est pas pris par _ArrayDisplay() pour celui de son bouton "Exit script" et la table s'affiche MAIS mais mais : Elle ne se ferme plus sauf par la croix. L'utilisation du bouton "Exit script" est toujours interceptée par ma fonction enregistrée même bien sûr s'il n'y a pas annulation de la barre de progression.
 que tu n'as pas testé la correction que tu proposes ! Certes le ControlId du bouton "Annuler" n'est pas pris par _ArrayDisplay() pour celui de son bouton "Exit script" et la table s'affiche MAIS mais mais : Elle ne se ferme plus sauf par la croix. L'utilisation du bouton "Exit script" est toujours interceptée par ma fonction enregistrée même bien sûr s'il n'y a pas annulation de la barre de progression. et ça marche très bien en rajoutant juste ça dans le fichier Test_ArrayDisplay.au3 de ton zip :
  et ça marche très bien en rajoutant juste ça dans le fichier Test_ArrayDisplay.au3 de ton zip : .
.

 
 