Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Retour sur SPIN | |
| | Auteur | Message |
---|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Retour sur SPIN Mer 5 Sep 2012 - 18:58 | |
| La documentation de l’aide comporte plusieurs erreurs. Par exemple la fonction TEXT$(N) qui retourne le texte visualisé par l’objet N : le manuel de référence indique que N est soit un EDIT soit un COMBO ! Or on peut l’utiliser pour un SPIN. D’ailleurs comment peut-on récupérer la valeur autrement ! Bien qu’on puisse borner les valeurs du SPIN par MIN et MAX, on peut saisir toute valeur en dehors des limites et plus bizarre on peut saisir aussi et exclusivement les 3 caractères suivant + - . (plus, moins et point). On peut par exemple saisir une valeur comme ceci ++1-++2-.+
Le manuel de référence dit : « Un SPIN visualise une valeur entière et fournit un MOYEN pour incrémenter ou décrémenter rapidement cette valeur » Mais il ne dit pas quel est ce MOYEN. Il ne dit pas aussi qu’on puisse utiliser ON_CHANGE avec SPIN, or c’est possible. D’après mes tests, il existe 3 moyens de le faire : 1) Cliquer sur les flèches HAUT ou BAS 2) Utiliser les flèches HAUT et BAS du clavier Dans ces 2 cas, la valeur reste bornée par MIN et par MAX et c’est parfait, sauf si MIN = MAX (et là la valeur peut être quelconque et je me demande pourquoi ?) Mais lorsque la plage des valeurs possibles est assez étendue (entre 0 et 255 ou entre 0 et 1024), on ne va pas cliquer continuellement pour arriver à la valeur désirée ! Dans ce cas on a le 3eme moyen de le faire 3) Saisir directement, au clavier, la valeur voulue. Et c’est là qu’il y a problème !
Le système ne permet pas de saisir les caractères alphabétiques et c’est tout à fait correct et bien. Il permet de saisir les caractères numériques (de 0 à 9) et c’est correct encore.
Mais il ne permet pas de ne pas dépasser les bornes définies par MIN et par MAX. Pire il permet aussi de saisir 3 autres caractères (+ - . plus, moins et point) et là ce n’est pas correct. Pour les caractères (+ ou -) ça peut y aller à condition qu’il soit en début et seulement en début de la saisie tandis que le caractère (.) ne doit pas être accepté puisque la valeur doit OBLIGATOIREMENT être entière ; autrement dit, elle doit avoir un successeur et un prédécesseur ce qui n’est pas le cas pour une valeur réelle.
Dans un SPIN, le système accepte une saisie comme ceci : +-123++5.. Ce qui déclenchera une erreur lorsqu’on veut récupérer la valeur dans une variable.
Pour ceux qui diront : tu n’as qu’à être logique ou rationnel ou responsable de ta saisie et qu’on ne saisit pas une valeur de cette manière etc. Je répondrais ainsi : Puisque le système peut reconnaitre les caractères interdits (lettres et autres symboles tels que !, ?£ : etc.) et ne les accepte pas, il pourrait également ne pas accepter une saisie comme ++++…----1230.
Le programmeur peut éviter ces erreurs en faisant les tests nécessaires dans son code et c’est son devoir mais ça rallongerait beaucoup le code Il doit tester si la variable dans laquelle il a récupéré la valeur est NUMERIC puis si on n’a pas dépassé MAX puis si on n’a pas saisit une valeur inferieure à MIN. Si dans le programme, il y a plusieurs SPIN, la tâche risque d’être lourde.
Pour ma part, je peux me passer sans regret de ce SPIN et d’utiliser une autre démarche pour un résultat plus élégant. A moins que Jack apporterait une amélioration à ce SPIN.
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Retour sur SPIN Mer 5 Sep 2012 - 19:37 | |
| Très bonne critique constructive. Je trouve que le spin est un outils puissant personnellement et bien pratique, mais c'est vrai que la documentation est a améliorer, les exemples à enrichir...
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 5 Sep 2012 - 19:47 | |
| Perso, je verrai bien la partie "edit" grisé et que celui ci soit géré par "Position N,P" - "Position(N)" - "Min N,%" - "Max N,%" - " et augmenté ou diminué par ses flèches Un peu comme une "scroll_bar" qui afficherait sa valeur au lieu d'un avancement sur une bar. | |
| | | Invité Invité
| Sujet: Re: Retour sur SPIN Jeu 6 Sep 2012 - 0:26 | |
| Si vous ne voulez pas vous "emmerder" avec un spin, essayez ceci. Evidemment pour remplir et se servir d'une grandeur de 10000, il vaut mieux laisser tomber. - Code:
-
dim a% : label verif
list 1:width 1,60 :font_size 1,12 :height 1,25 :on_click 1,verif for a%=10 to 20:item_add 1,a%:next a% end verif: message item_index$(1) return
|
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Retour sur SPIN Jeu 6 Sep 2012 - 0:49 | |
| En effet, remplacement très malin | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Retour sur SPIN Jeu 6 Sep 2012 - 1:08 | |
| Merci cosmos 70. Et pour récupérer la valeur dans une variable, on fait ceci, n'est-ce pas ? - Code:
-
dim a%,v : label verif
list 1:width 1,60 :font_size 1,12 :height 1,25 :on_click 1,verif for a%=0 to 255:item_add 1,a%:next a%
end verif: v = val(item_index$(1)) message v return
Et pour aller plus vite, on fait ceci (si le contexte du programme le permet) - Code:
-
dim a%,v : label verif
list 1:width 1,60 :font_size 1,12 :height 1,400 :on_click 1,verif for a%=0 to 255:item_add 1,a%:next a%
end verif: v = val(item_index$(1)) message v return
| |
| | | Invité Invité
| Sujet: Re: Retour sur SPIN Jeu 6 Sep 2012 - 6:44 | |
| Dans ton dernier exemple, cela ne montre non pas une simulation d'un objet SPIN, mais celui d'un list. A partir de là je proposerais un combo. Il y a une chose qui ne me plais pas avec combo, car le remplacement d'un spin a un défaut. Si on se sert d'un même combo pour plusieurs objets, on n'a pas la possibilité d'imposer la valeur à voir dans la partie edit du combo. D'ailleurs je me demande, à quel moment celui-ci est mise à jour par Panoramic. Qu'est-ce qui fait que le texte est modifié, vu que celui imposé est bien placé dans l'edit pendant un moment. Jack peux-tu me répondre là dessus. J'en ai parlé dans un temps bien lointain. Personnellement pour moi, il y a un bug. - Code:
-
dim a% : label verif
combo 1:width 1,60 :font_size 1,12 :height 1,25 :on_click 1,verif for a%=10 to 20:item_add 1,a%:next a% end verif: message item_index$(1) clear 1 :' je fais l'essai de tout vider pour voir text 1,10 for a% = 10 to 20:item_add 1,a%:next a% text 1,10:stop return
La seul possibilité est de mettre un 2ème edit par dessus celui du combo pour afficher ce qu'on veut, et d'y mettre un on_change sur cet edit. Mais à partir de là il faut mieux travailler avec SPIN. Je vous laisse dans vos réflexion. Je vais voir ailleur si j'y suis, dès fois que je me retrouve |
| | | Contenu sponsorisé
| Sujet: Re: Retour sur SPIN | |
| |
| | | | Retour sur SPIN | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |