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 |
|
|
| objets barres | |
| | Auteur | Message |
---|
flowerkinzy
Nombre de messages : 100 Date d'inscription : 23/09/2009
| Sujet: objets barres Ven 24 Juin 2011 - 20:25 | |
| scroll_bar et track_bar ne fonctionnent plus.
Il ne tient pas compte des min et max et laisse la position initiale à 1. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: objets barres Ven 24 Juin 2011 - 22:56 | |
| Un petit test rapide pour Scroll_Bar et Track_Bar: - Code:
-
DIM i% SCROLL_BAR 1: TOP 1, 20: WIDTH 1, 500 MIN 1, 0: MAX 1, 100: POSITION 1, 50 TRACK_BAR 2: TOP 2, 60: WIDTH 2, 500 MIN 2, 1: MAX 2, 100: POSITION 2, 30 FOR i% = 1 TO 100 POSITION 1, i%: WAIT 30: ' scroll_bar NEXT i% END je ne vois pas d'anomalie ? | |
| | | Invité Invité
| Sujet: Re: objets barres Sam 25 Juin 2011 - 8:10 | |
| Bonjour J'ai fait un teste plus poussé. Faudra demandé à Flowerkinzy de laisser la bouteille de côté. Les deux objets hautement incriminés sont vraiment innocent ! - Code:
-
DIM i% :width 0,600 :label un ,deux, trois, quatre SCROLL_BAR 1: TOP 1, 20: WIDTH 1, 500 : MIN 1, 25: MAX 1, 100: POSITION 1, 10 TRACK_BAR 2: TOP 2, 60: WIDTH 2, 500 : MIN 2, 1: MAX 2, 90 : POSITION 2, 30 spin 3 :top 3,20:left 3,520:width 3,60 : position 3,position(1) spin 4 :top 4,60:left 4,520:width 4,60 : position 4,position(2) message "contrôler les valeurs" FOR i% = 1 TO 120 POSITION 1, i%: WAIT 30: ' scroll_bar position 3,position(1) NEXT i%
FOR i% = 1 TO 120 POSITION 2, i%: WAIT 30: ' scroll_bar position 4,position(2) NEXT i%
on_change 1,un on_change 2,deux on_change 3,trois on_change 4,quatre END un: position 3,position(1) return deux: position 4,position(2) return trois: position 1,position(3) return quatre: position 2,position(4) return
A savoir: on pourrait penser qu'en modifiant les spins au delà des valeurs des barres, par rapport à on_change des barres, on voit que la valeur des spins n'est plus mise à jour. C'est tout à fait normal, vu que la position des barres ne réagissant pas à la valeur, il n'y a pas de branchement. Donc les spins ne sont plus actualisés. |
| | | Invité Invité
| Sujet: Re: objets barres Sam 25 Juin 2011 - 9:23 | |
| J'en profite pour montrer un problème. Ceci ne fait pas référence à un bug de Panoramic, car sur ce sujet, il n'y a pas de bug à ma connaissance. Lorsqu'on programme sur un objet qui réagit à on_change, parfois on a des doutes sur cette instruction, car il n'y a pas eu d'effet, et le code ne suit pas la logique que a défini. Je mets un code qui expliquera mieux qu'un long discourt: - Code:
-
dim a$:font_size 0,12 :label un ,trois , six edit 1:width 1,150 edit 2:top 2,60:width 2,150 :inactive 2 button 3:top 3,120:width 3,120:caption 3,"envoi texte" picture 4:left 4,160 picture 5:top 5,200:left 5,10:width 5,200:print_target_is 5 button 6:top 6,120 :left 6,140:width 6,120:caption 6,"texte défini" :on_click 6,six
set_focus 1 on_change 1,un on_click 3,trois
end un: active 2:text 2,text$(1):inactive 2 color 4,255,0,0:wait 200:color 4,255,255,255 return
trois: color 5,255,255,0 a$=text$(1):print a$ :text 1,a$ wait 1000:color 5,255,255,255 return
six: text 1,"écriture sur EDIT 1" return Si vous cliquez sur le deuxième bouton, vous verrez l’interaction de ce clic. Par contre au clic du premier, malgrès l'envoi d'un texte sur l'edit 1, il ne se passe rien. |
| | | flowerkinzy
Nombre de messages : 100 Date d'inscription : 23/09/2009
| Sujet: Re: objets barres Sam 25 Juin 2011 - 14:29 | |
| Post modifiéAlors, j'explique avec un code. En effet, le problème est avec on_change.le problème est avec le nombres réels Avec un "curseur entier" - Code:
-
scroll_bar 1 position 1, 2 min 1, 0 max 1, 3 message position(1) Avec une "position réelle" - Code:
-
scroll_bar 1 position 1, 1.2 min 1, 0 max 1, 3 message position(1) le 1.2 est arrondi à 1 et le scroll_bar est incrémenté de 1 en 1. Essayez! @cosmos70: Mais non, la bouteille est bien rangée! En plus, je suis toujours pas majeure! | |
| | | Invité Invité
| Sujet: Re: objets barres Sam 25 Juin 2011 - 15:26 | |
| - Citation :
- En plus, je suis toujours pas majeure!
Ah une vie qui commence, la mienne qui fini! Je ne sais pas quoi te dire, cela me parait logique. Le scroll_bar à ma connaissance n'a pas pour but d'être précis, mais de montrer une position relative. Tous les exemples de windows avec par exemple la visualisation de l'avancement d'un scan, ou le chargement d'un fichier, montre la position sur un nombre entier. Le passage d'une position à l'autre, le curseur ne bouge pas. On voit le nombre de fichier lus par exemple qui s'incrémente, mais tant que le % entier n'a pas changé, il ne se passe rien. Si tu veux quelque chose de plus précis, il va falloir le fabriquer avec un petit téton qui se déplace. (je parle de téton car je crois que tu es du féminin. ) |
| | | Invité Invité
| Sujet: Re: objets barres Sam 25 Juin 2011 - 15:49 | |
| Si tu veux une position plus précise du scroll_bar: - Code:
-
dim a ,b scroll_bar 1:min 1,0:max 1,30 edit 2:top 2,100 scroll_bar 3:top 3,40:min 3,0:max 3,3
for a=0 to 3 step .1 b=a*10 position 1,b position 3,a text 2,a :wait 500 next a |
| | | Invité Invité
| Sujet: Re: objets barres Dim 26 Juin 2011 - 8:37 | |
| @Jack Peux-tu me dire pourquoi le code suivant ne marche pas, concernant les scroll_bar, spin... avec la commande on_change? - Code:
-
dim a :label teste ,un
scroll_bar 1:min 1,0:max 1,10 : on_change 1,un picture 2:top 2,50 edit 3:left 3,200
on_click 0,teste end ' ------------------------------- teste: for a=0 to 100 position 1,a/10 :text 3,a wait 100 next a return ' ------------------------------- un: color 2,255,0,0 if clicked(2)=1 then terminate wait 1000 color 2,255,255,255 return
Je voulais voir si dans une partie de code, on pouvait éviter un timer pour par période faire une déviation pour tel ou tel raison avec un scroll_bar invisible. Théoriquement le ON_CHANGE devrait faire le détour au sub: un. Il n'en est rien ??? |
| | | Invité Invité
| Sujet: Re: objets barres Dim 26 Juin 2011 - 12:55 | |
| J'ai passé ma matinée au bois, comme bien souvent, et comme c'est généralement le cas, c'est hors de l'ordinateur que j'ai les idées ou les solutions.
Un objet scroll_bar, ou edit ou tout objet qui fonctionne entre autre avec on_change, est soumit à la file d'attente d'un évènement qu'on appel ici (ou ailleurs je ne sais pas): queue de file.
Avec Panoramic, pour que tout évènement soit pris en compte, on doit se trouver en dehors d'un boucle: for/next repeat/until while/end_while goto. Tant que la boucle n'est pas terminée, l'évènement suivant, ici on_change d'un scroll_bar, n'est exécuté qu'une fois que cette boucle est terminée, ou extraite d'une manière ou d'une autre.
Je ne pense que ce soit possible aujourd'hui de demander à rajouter une instruction qui dise qu'on peut sortir d'une boucle par un évènement extérieur. Il y a exit_patatit mais elle doit-être programmé. La liste est longue, et Toonic prend le dessus. (Ce n'est pas un reproche, si Jack est comme moi, lorsqu'on a une nouvelle idée qui vous nourrit, l'ancienne recule. C'est humain!
Bonne appétit! |
| | | Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: objets barres Dim 26 Juin 2011 - 16:14 | |
| Oui, c'est comme cela que ça se passe. Les événements s'empilent, puis lorsqu'il n'y a plus rien à exécuter, il s'exécutent dans l'ordre inverse où ils ont été empilés. Pour bien le mettre en évidence, j'ai modifié le traitement d'événement "un". On voit que le scroll_bar se modifie, puis le picture "clignote" 10 fois en passant du rouge au blanc, ce qui correspond aux événements empilés pendant l'exécution de la boucle "teste": - Code:
-
dim a :label teste ,un
scroll_bar 1:min 1,0:max 1,10 : on_change 1,un picture 2:top 2,50 edit 3:left 3,200
on_click 0,teste end ' ------------------------------- teste: for a=0 to 100 position 1,a/10 :text 3,a wait 100 next a return ' ------------------------------- un: color 2,255,0,0 if clicked(2)=1 then terminate wait 500 color 2,255,255,255 wait 500 return Sortir d'une boucle par un événement extérieur? L'idée serait à creuser... TOONIC avance à grands pas. C'est vrai qu'il tient une grande place dans mes temps libres au détriment de PANORAMIC. Je suis en train de développer TOONIC et je pense déjà à un autre langage: IRRILIC qui serait un langage 3D basé sur Irrlicht, mais en Basic... Mais une chose à la fois, je vais d'abord sortir TOONIC qui est dans le même esprit que PANORAMIC: tous les objets ont un numéro et on agit par des commandes en les désignant par leur numéro. Quand on a le virus de la programmation... | |
| | | flowerkinzy
Nombre de messages : 100 Date d'inscription : 23/09/2009
| Sujet: Re: objets barres Jeu 7 Juil 2011 - 11:13 | |
| Alors mon ordi s'est mis à "hiberner" pendant une semaine donc, je ne lis vos réponses que maintenant0 Merci à tous. En fait, j'ai multiplié toutes les valeurs par 10, pour avoir des valeurs entières mais après je redivise par 10 dans la suite du code pour avoir mes valeurs décimales. Voilà | |
| | | Contenu sponsorisé
| Sujet: Re: objets barres | |
| |
| | | | objets barres | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |