silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: instabilité des commandes évènements(6 bugs en 1 code) Lun 4 Mar 2019 - 17:33 | |
| Cet exemple est représentatif des bugs qui apparaissent à l'éxécution d'un programme ( sans que la commande PAUSE ne soit présente dans le dit programme) ATTENTION : dans le code suivant, la commande PAUSE en ligne 28 n'est là que pour reproduire les instabilités des commandes évènements. - Code:
-
label affiche dim i,choix
memo 1 : full_space 1 : set_focus 1
' évènement à choisir: choix=8
select choix ' case 1 : on_activate 1,affiche case 2 : on_change 1,affiche :' appuyez plusieurs fois la touche "espace" jusqu'à l'apparition du compteur, puis cliquez la croix en faut et à droite pour quitter --->crash case 3 : on_click 1,affiche :' ras ' case 4 : on_close 1,affiche case 5 : on_double_click 1,affiche :' ras case 6 : on_key_down 1,affiche :' idem "on_change" case 7 : on_key_up 1,affiche :' idem "on_change" case 8 : on_mouse_down 1,affiche :' cliquez 1 ou plusieurs fois --->erreur "label defined twice" puis crash case 9 : on_mouse_move 1,affiche :' bougez la souris --->crash case 10: on_mouse_up 1,affiche :' idem "on_mouse_down" ' case 11: on_resize 1,affiche ' case 12: on_show 1,affiche ' case 13: on_timer 1,affiche ' case 14: on_user_event 1,affiche end_select
' Dans ce code, les bugs apparaissent parcequ'un évènement est déclenché avant que la commande END à été atteinte ' Cependant, il n'est pas rare que ces mêmes bugs apparaissent à l'éxécution d'un programme, sans que la commande PAUSE ne soit présente! pause 2000
END affiche: select choix ' case 1 : off_activate 1 case 2 : off_change 1 case 3 : off_click 1 ' case 4 : off_close 1 case 5 : off_double_click 1 case 6 : off_key_down 1 case 7 : off_key_up 1 case 8 : off_mouse_down 1 case 9 : off_mouse_move 1 case 10: off_mouse_up 1 ' case 11: off_resize 1 ' case 12: off_show 1 ' case 13: off_timer 1 ' case 14: off_user_event 1 end_select ' i=i+1 : caption 0,str$(i) ' select choix ' case 1 : on_activate 1,affiche case 2 : on_change 1,affiche case 3 : on_click 1,affiche ' case 4 : on_close 1,affiche case 5 : on_double_click 1,affiche case 6 : on_key_down 1,affiche case 7 : on_key_up 1,affiche case 8 : on_mouse_down 1,affiche case 9 : on_mouse_move 1,affiche case 10: on_mouse_up 1,affiche ' case 11: on_resize 1,affiche ' case 12: on_show 1,affiche ' case 13: on_timer 1,affiche ' case 14: on_user_event 1,affiche end_select return NB: Je précise bien " reproduire", car c'est plus compliqué d'effectuer des tests avec un code dont les bugs apparaissent de manière aléatoire | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: instabilité des commandes évènements(6 bugs en 1 code) Lun 4 Mar 2019 - 18:28 | |
| Sans approfondir plus en avant ton code, je peux te dire ceci:
Les évènements, de façon générale, ne sont pas gérés correctement avant d'avoir atteint la commande END. Jusque là, on est toujours dans un mode d'initialisation du programme, et tout n'est pas encore bien établi. Et si tu mets une commande PAUSEavant le END, tu tombes à coup sûr sur des conflits de ce genre.
Conseil: laisse passer tout le code avant END - il est fait pour "initialiser" le programme. Place tous tes ON_xxx juste avant le END, puis observe le comportement.
Problème disparu ? | |
|
silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: instabilité des commandes évènements(6 bugs en 1 code) Lun 4 Mar 2019 - 18:44 | |
| - Silverman a écrit:
- ATTENTION : dans le code suivant, la commande PAUSE en ligne 28 n'est là que pour reproduire les instabilités des commandes évènements.
Il ne faut pas se focaliser sur la commande PAUSE avant le END!!! J'ai ajouté: - Silverman a écrit:
- NB: Je précise bien "reproduire", car c'est plus compliqué d'effectuer des tests avec un code dont les bugs apparaissent de manière aléatoire
Bien entendu que la commande PAUSE n'est pas judicieuse à cet endroit du code, mais j'essaye de produire un code court qui montre le problême d'instabilité de ces commandes. Je pensais m'être exprimé clairement... Je trouve dommage et nuisible à panoramic que ces bugs signalés depuis longtemps n'aient pas encore été corrigé, alors que celui-ci s'est enrichi d'objets non sollicité! | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: instabilité des commandes évènements(6 bugs en 1 code) Lun 4 Mar 2019 - 18:57 | |
| D'accord avec toi, sur le fond. Mais n'oublions pas que Jack fait ça gratuitement, dans son temps libre, et vu ses fonctions, il n'en a pas beaucoup. Cependant, je suis certain qu'il note tout et qu'il n'oublie rien, et un jour ou l'autre, ça va venir. Après tout, c'est lui qui décide de ses priorités...
En attendant, il s'agit de trouver des façons intelligentes pour contourner le problème. | |
|
Contenu sponsorisé
| Sujet: Re: instabilité des commandes évènements(6 bugs en 1 code) | |
| |
|