Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Modèle de bouton-poussoir Ven 20 Mai 2022 - 1:31 | |
| Bonjour à tous ! Il existe une infinité de modèle de bouton. L’avantage en l’informatique est que si l’on n’a pas l’objet souhaité, on peut le construire soi-même. Certes, j’aurais pu utiliser un BOUTON_PICTURE pour avoir la même fonctionnalité, mais il n’aurait pas eu tout à fait la même apparence. Voici donc un exemple fait maison, de bouton-poussoir fugitif ( c’est-à-dire qui revient à sa position initiale quand on le relâche) muni d’un voyant. Il répond à l’esthétique d’un projet que je développe. Il est bâti sur un PANEL ce qui permet de le positionner facilement à l’endroit souhaité dans une interface graphique. Il est actionné par le bouton gauche de la souris avec l’évènement ON_MOUSE_DOWN. A chaque appui, la variable globale on% change de valeur entre 0 et 1. Il est animé. Pour ce faire, deux images se succèdent : une quand le bouton est appuyé et une quand le bouton est relâché. Le code-source est commenté. - Code:
-
' Bouton poussoir fugitif ' fichier BoutonPoussoir_1.bas ' Marc - Mai 2022 ' Ecrit en langage Panoramic 0.9.29i9
dim null%, on% label appuiBouton color 0,30,30,30 ' creerInterrupteurOnOff(coordonnée en x, coordonnée en y) creerInterrupteurOnOff(20,20) end ' ------------------------------------------------------------------------------ sub creerInterrupteurOnOff(x%,y%) command_target_is 0 panel 10 height 10,52 width 10,52 top 10,y% left 10,x% command_target_is 10 ' image de fond pour le panel n% picture 11 width 11,52 height 11,52 color 11,30,30,30 ' cadre arrondi 2d_target_is 11 2d_pen_color 127,127,127 2d_point 2,2 2d_line 3,1,5,1 2d_line 5,0,47,0 2d_line 47,1,49,1 2d_point 49,2 2d_line 50,3,50,5 2d_line 51,5,51,47 2d_line 50,47,50,49 2d_point 49,49 2d_line 47,50,49,50 2d_line 5,51,47,51 2d_line 3,50,5,50 2d_point 2,49 2d_line 1,47,1,49 2d_line 0,5,0,47 2d_line 1,3,1,5 ' image bouton relaché picture 12 2d_target_is 12 width 12,38 height 12,30 top 12,7 left 12,7 color 12,60,60,60 ' Pourtour du bouton pour obtenir un effet de relief 2d_pen_color 90,90,90 2d_line 0,0,38,0 2d_line 0,1,37,1 2d_line 0,0,0,30 2d_line 1,0,1,29 2d_pen_color 40,40,40 2d_line 37,1,37,30 2d_line 1,29,38,29 2d_pen_color 50,50,50 2d_line 2,28,37,28 2d_line 36,2,36,29 ' sérigraphie ' lettre "O" 2d_pen_color 200,200,200 2d_line 14,5,17,5 2d_line 17,6,17,11 2d_line 14,11,17,11 2d_line 13,6,13,11 ' lettre "n" 2d_line 19,5,19,12 2d_line 20,6,23,9 2d_line 23,5,23,12 2d_point 22,9 ' barre horizontale de séparation 2d_line 8,14,30,14 ' lettre "O" 2d_line 13,17,16,17 2d_line 16,18,16,23 2d_line 13,23,16,23 2d_line 12,18,12,23 ' lettre "f" 2d_line 18,17,22,17 2d_line 18,17,18,24 2d_line 18,20,21,20 ' lettre "f" 2d_line 23,17,27,17 2d_line 23,17,23,24 2d_line 23,20,26,20
' image bouton enfoncé create_hide picture 13 2d_target_is 13 width 13,38 height 13,30 top 13,7 left 13,7 color 13,60,60,60 ' Pourtour du bouton pour obtenir un effet de relief 2d_fill_off 2d_pen_color 40,40,40 2d_rectangle 0,0,38,30 2d_pen_color 60,60,60 2d_line 1,1,37,1 2d_line 1,1,1,29 ' sérigraphie ' lettre "O" 2d_pen_color 200,200,200 2d_line 15,6,18,6 2d_line 18,7,18,12 2d_line 15,12,18,12 2d_line 14,7,14,12 ' lettre "n" 2d_line 20,6,20,13 2d_line 21,7,24,10 2d_line 24,6,24,13 2d_point 23,10 ' barre horizontale de séparation 2d_line 9,15,31,15 ' lettre "O" 2d_line 14,18,17,18 2d_line 17,19,17,24 2d_line 14,24,17,24 2d_line 13,19,13,24 ' lettre "f" 2d_line 19,18,23,18 2d_line 19,18,19,25 2d_line 19,21,22,21 ' lettre "f" 2d_line 24,18,28,18 2d_line 24,18,24,25 2d_line 24,21,27,21 create_show
' voyant picture 14 width 14,38 height 14,5 top 14,41 left 14,7 color 14,255,0,0
on_mouse_down 12,appuiBouton end_sub ' ------------------------------------------------------------------------------ appuiBouton: off_mouse_down 12 ' on ignore le clic-droit souris if mouse_right_down(12)=1 on_mouse_down 12,appuiBouton return end_if ' raffraichissement de l'état des boutons de la souris null% = mouse_left_up(12) null% = mouse_left_down(12) ' le bouton est enfoncé while mouse_left_up(12) = 0 :' Tant que le bouton gauche souris reste appuyé show 13 pause 20 end_while ' le bouton est relaché if on% = 1 on% = 0 color 14,255,0,0 :' couleur du voyant else on% = 1 color 14,0,255,0 :' couleur du voyant end_if hide 13 on_mouse_down 12,appuiBouton return
Bonne programmation à tous ! | |
|