peux tu m'expliquer ça :
WindowEvent()
Cette fonction ne va pas bloquer l'exécution du programme pendant
l'attente de l'évenement. Elle va donc utiliser plein de memoire sur
l'ordi.
????
je note aussi un truc qui me gene un peu ....
tu donne comme exemple :
;on va faire l'exemple avec des EditorGadget et des ButtonGadget et des TextGadget
;on ouvre une fenetre 800*600 au centre de l'écran avec les boutons agrandir, réduire, fermer.
#fenetre = 1 ;dans cet exemple, j'utilise une constante pour ouvrir la fenetre. Ca aurait pu tout aussi bien être #test ou autre.
#fenetre_largeur = 800 ;j'utilise une constante pour la largeur
#fenetre_hauteur = 600 ;j'utilise une constante pour la hauteur
OpenWindow(#fenetre ,0,0,#fenetre_largeur ,#fenetre_hauteur ,"Kayne - Tuto Gadget Exemple",#PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MinimizeGadget| #PB_Window_MaximizeGadget)
FenetreID = WindowID(#fenetre )
CreateGadgetList(FenetreID)
couleur = RGB(0,0,100) ;on met la fenetre en bleu foncé
SetWindowColor(1,couleur)
;on met en place les gadgets
;on place le bouton a 10 px du bord de la fenetre
pour la largeur et au 2/3 (en partant du haut vers le bas) pour la
hauteur. 1/3 de la fenetre en largeur et 40pixels en hauteur
ButtonGadget(1, 10, #fenetre_hauteur *2/3, #fenetre_largeur /3, 40, "Afficher Bonjour" )
;on place le bouton au 2/3 - 10px de la fenetre
(de gauche à droite) pour la largeur et au 2/3 (en partant du haut vers
le bas) pour la hauteur. 1/3 de la fenetre en largeur et 40pixels en
hauteur
ButtonGadget(2, #fenetre_largeur *2/3-10, #fenetre_hauteur *2/3, #fenetre_largeur /3, 40, "Afficher Au revoir" )
;on place le texte au bord de la fenetre (de
gauche à droite) pour la largeur et en bas de la fenetre ce qui
équivaut à la hauteur de la fenetre - la hauteur du gadget (40 pixel) .
toute la fenetre en largeur et 40pixels en hauteur
;on autorise pas l'utilisateur à écrire dans la fenetre.
EditorGadget(3, 0, #fenetre_hauteur -40, #fenetre_largeur , 40, #PB_Editor_ReadOnly )
;on affiche une grande zone d'édition en haut ou on affichera du texte
;on autorise pas l'utilisateur à écrire dans la fenetre.
EditorGadget(4, 0, 0, #fenetre_largeur , #fenetre_hauteur *2/3 -10, #PB_Editor_ReadOnly )
;on affiche pour l'info un TextGadget dans la place qu'il reste et on centre le texte
;chr(10) est utilisé pour le retour à la ligne
TextGadget(5, 10, #fenetre_hauteur *2/3 +50 , #fenetre_largeur-20, 80, Chr(10)+"Ce petit programme Purebasic va servir à afficher des messages de bienvenue ou de départ."+Chr(10)+"Pas très exitant je sais mais c'est juste pour l'exemple"+Chr(10)+"Pour afficher le message, cliquez sur le gadget correspondant.", #PB_Text_Center )
Repeat
event = WaitWindowEvent() ;on met à jour les évenements
If event = #PB_Event_Gadget ;un gadget est il utilisé ?
clicgadget = EventGadget() ;OUI, on identifie le gadget
Else
clicgadget = 0 ;NON, on renvoie 0
EndIf
If clicgadget = 1 ;appui sur le bouton Bonjour
au debut tu commence tres bien , a expliquer ce que sont les constantes
mais ensuite pour les gadgets , tu ne les utilise pas ....
ce qui fait que ton
If clicgadget = 1
est bien moin parlant que
If clicgadget = #gadget_bonjour
par exemple ....
d'autant que pour la fenetre tu le fait bien , l'utilisation d'une constante !!
c'est plus propre et plus comprhensible d'utiliser des constantes, plutot qu'un vulgaire nombre ....
pour commencer , et pour un débutant c'est mieux de prendre les bon reflexes ..
tu devrai meme faire tout un chapitre la dessus , (Les constantes)
et ensuite que tout tes exemples soient calqué la dessus
sinon pas mal ; et bon travail
ps :
et oui meme le tp
tu donne en exemple l'utilisation des constantes pour la fenetre , pour la video , mais pas pour les gadgets !!
peut etre ignorait tu qu'on pouvais le faire ??
ButtonGadget(1,20,WindowHeight(1)-30,100,25,"Lecture")
ButtonGadget(2,130,WindowHeight(1)-30,100,25,"Pause")
ButtonGadget(3,240,WindowHeight(1)-30,100,25,"Arrêt")
TrackBarGadget(4,10, WindowHeight(1)-70 , WindowWidth(1)-20, 20, 0, nb_image)
;on fait la boucle
ici tu aurai pu faire
ButtonGadget(#Lecture,20,WindowHeight(1)-30,100,25,"Lecture")
ButtonGadget(#Pause,130,WindowHeight(1)-30,100,25,"Pause")
ButtonGadget(#Arret,240,WindowHeight(1)-30,100,25,"Arrêt")
TrackBarGadget(#trackbarr,10, WindowHeight(1)-70 , WindowWidth(1)-20, 20, 0, nb_image)
;on fait la boucle