Atom
Nombre de messages : 26 Date d'inscription : 11/07/2012
| Sujet: Objet à onglets Sam 7 Déc 2013 - 15:24 | |
| Bonjour, Tout récemment, j'ai créé un objet à onglets. Toute la configuration de l'objet est au début du code. (couleurs, taille, position...) Par contre, l'objet ne supporte pas plus d'une rangée d'onglets. Aucun objets s'affiche sur les onglets pour l'instant, mais c'est très facile à implémenter. - Code:
-
' Objet à onglets - 8 décembre 2013 label draw dim s,i,x,y,n :n=5 :' Nombre d'onglets dim w,h,l,t,r(4),g(4),b(4),t$(n),selected
selected=1 :' Onglet sélectionné par défaut s=0 :' Premier numéro d'objet utilisé -1
' === Définitions des couleurs r(0)=240:g(0)=240:b(0)=240 :' Fond de la fenêtre r(1)=255:g(1)=255:b(1)=255 : ' Contour r(2)=130:g(2)=130:b(2)=130 : ' Ombre 1 r(3)=0:g(3)=0:b(3)=0 : ' Ombre 2 r(4)=0:g(4)=0:b(4)=0 : ' Texte
' === Texte des onglets === for i=1 to 5 t$(i)="Onglet "+str$(i) next i
' === Objet principal === l=50:t=30:w=400:h=250 :' Taille et position
picture s+1:2d_target_is s+1 left s+1,l:top s+1,t+20 width s+1,w:height s+1,h color s+1,r(0),g(0),b(0)
' Dessiner le contour 2d_pen_color r(1),g(1),b(1):2d_line 0,0,0,h:2d_line 0,0,w,0 2d_pen_color r(2),g(2),b(2):2d_line 1,h-2,w-1,h-2:2d_line w-2,1,w-2,h-2 2d_pen_color r(3),g(3),b(3):2d_line 0,h-1,w,h-1:2d_line w-1,0,w-1,h-1
' ===Onglets === alpha 2:hide 2 :' Cible du texte
for i=s+3 to n+s+2 y=text_width(t$(i-s-2),2)+12
picture i left i,l+x+2:top i,t width i,y:height i,21 on_click i,draw x=x+y next i
' Onglet caché picture n+s+3 left n+s+3,l+x+2:top n+s+3,t width n+s+3,2:height n+s+3,21
' === Afficher les onglets === x=0:gosub draw
end
draw: ' === Onglet sélectionné === if number_click=-1 x=selected+s+2 else left x,left(x)+2:width x,width(x)-2 x=number_click end_if
' === Afficher les onglets === color n+s+3,r(0),g(0),b(0) :' Effacer l'onglet caché
for i=n+s+2 to s+3 step -1 y=text_width(t$(i-s-2),2)+12 2d_target_is i:print_target_is i
if i<>x ' Onglets normaux color i,r(0),g(0),b(0) 2d_pen_color r(1),g(1),b(1):2d_line 0,20,w,20:2d_line 0,4,0,21:2d_point 1,3:2d_line 2,2,y-2,2 2d_pen_color r(2),g(2),b(2):2d_line y-2,4,y-2,21 2d_pen_color r(3),g(3),b(3):2d_point y-2,3:2d_line y-1,4,y-1,21 print_locate 6,5 else ' Onglet sélectionné left i,left(i)-2:width i,y+2 y=y+2 color i,r(0),g(0),b(0) 2d_pen_color r(1),g(1),b(1):2d_line 0,2,0,21:2d_point 1,1:2d_line 2,0,y,0 2d_target_is x+1 2d_pen_color r(2),g(2),b(2):2d_line 0,2,0,21 2d_pen_color r(3),g(3),b(3):2d_point 0,1:2d_line 1,2,1,21 print_locate 7,4 end_if ' Imprimer le texte 2d_target_is i 2d_fill_color r(0),g(0),b(0):font_color i,r(4),g(4),b(4) print t$(i-s-2) next i
' === Afficher/cacher les objets dans l'onglet === select x-s-2 case 1:' Onglet 1 case 2:' Onglet 2 case 3:' Onglet 3 case 4:' Onglet 4 ' ... end_select return Atom
Dernière édition par Atom le Dim 8 Déc 2013 - 16:30, édité 3 fois (Raison : Code) | |
|