Fenetre modale : bug !
Publié : sam. 01/sept./2007 18:12
Yo !
J'ai décidé de créer un programme(pour une fois)utile.
Vous n'en conaitrez pas la raison.
Voici le script :
Vous l'avez donc vu je me suis inspiré du plus génialissime des codes que Dobro ai pu faire ^^
Simplement je souhaite que quand on clique sur un item ca ouvre un web gadget(allez,google !).
Mais le problème c'est que ayant fais ca la fenetre spritée se ferme,et en
suivant le tuto de Jacob ca me fais des erreurs partout
...
Voila ce que je souhaiterai :
Une fenêtre de chargement...
Elle se ferme a la fin du chargement et ca ouvre ma belle fenêtre(enfin celle de Dobro xD)et quand on clique sur les items menu ca ouvre des web gadgets DANS UNE NOUVELLE FENETRE !
Eclairez moi j'ai usé de tous les moyens(sauf écouter Tokio Hotel quand je code)alors svp eclairez moi !!
Et puis si vous arrivez pas : ca veut dire que moi non plus j'y arriverai pas donc je laisserai tomber
A plus !
J'ai décidé de créer un programme(pour une fois)utile.
Vous n'en conaitrez pas la raison.
Voici le script :
Code : Tout sélectionner
; Codé par Dobro(et DoctorB,non mais !)
; en purebasic 4.02
;- Window Constants
;
Declare Open_Window_0()
Enumeration
#Window_0 ; numero de la fenetre
#sprite ; numero du sprite
#Button_0 ; numero du bouton
EndEnumeration
Structure sprite
num.l ; numero du sprite
x.l ; la coordonée x du sprites
Y.l ; la coordonée y du sprites
sensx.l ; le sens du deplacement x du sprite
sensy.l ; le sens du deplacement y du sprite
coul.l ; la couleur du sprite
EndStructure
nombre_de_Sprite=15
Dim sprite.sprite(nombre_de_Sprite)
For i=1 To nombre_de_Sprite
sprite(i)\x= Random (200) +32 ; on donne une coordonée de depart au sprite
sprite(i)\Y= Random (200)+32
de= Random (1)
If de=1
sprite(i)\sensx=4 ; on donne un sens de deplacement par defaut au sprite
sprite(i)\sensy=4 ; ce chiffre correspond a la vitesse de deplacement du sprite
Else
sprite(i)\sensx=-4 ; on donne un sens de deplacement par defaut au sprite
sprite(i)\sensy=4 ; ce chiffre correspond a la vitesse de deplacement du sprite
EndIf
sprite(i)\coul = RGB ( Random (200)+50, Random (200)+50, Random (200)+50) ; attribut une couleur
Next i
;
InitSprite ()
Open_Window_0() ; appel de la procedure qui ouvre la fenetre
; ****** creation des sprites *********
For i=1 To nombre_de_Sprite
CreateSprite (i,16,16) ; creation d'une cellule vide (un sprite)
StartDrawing ( SpriteOutput (i)) ; on va dessiner dans notre sprite un carre coloré
Box (1,1,16,16,sprite(i)\coul) ; voila le dessin du carre vert dans notre sprite
StopDrawing ()
Next i
;**************************************
Repeat ; boucle principale , qui gere les affichages dans l'ecran graphique et les evenement de la fenetre
Event = WindowEvent () ; attends de recevoir un evenements de la fenetre
Delay (1)
WindowID = EventWindow () ; The Window where the event is generated, can be used in the gadget procedures
GadgetID = EventGadget () ; Is it a gadget event?
EventType = EventType () ; The event type
;You can place code here, and use the result as parameters for the procedures
If Event = #PB_Event_Gadget
If GadgetID = #Button_0
Debug "appuis sur le bouton ok"
End
EndIf
EndIf
For i=1 To nombre_de_Sprite
sprite(i)\x= sprite(i)\x+sprite(i)\sensx ; on lance le sprite
sprite(i)\Y=sprite(i)\Y+sprite(i)\sensy
; on va tester les sortie de l'ecran pour creer des rebonds
; les verticales
If sprite(i)\Y<0 ; sort par le haut !!
sprite(i)\sensy=-sprite(i)\sensy ; on inverse le deplacement vertical
EndIf
If sprite(i)\Y>350-16 ; sort par le bas !!
sprite(i)\sensy=-sprite(i)\sensy ; on inverse le deplacement vertical
EndIf
; les horizontales
If sprite(i)\x<0 ; sort par la gauche
sprite(i)\sensx=-sprite(1)\sensx ;on inverse le deplacement horizontal
EndIf
If sprite(i)\x>400-16 ; sort par la droite
sprite(i)\sensx=-sprite(i)\sensx ;on inverse le deplacement horizontal
EndIf
; ********** fin des test de sorti d'ecran *****************
; **************Affichage du sprite ***********
DisplaySprite (i,sprite(i)\x,sprite(i)\Y)
Next i
FlipBuffers ()
ClearScreen ( RGB (0,0,0)) ; on nettoie l'ecran pour le prochain affichage
; *****************************************
Until Event = #PB_Event_CloseWindow ; End of the event loop
End
;
Procedure Open_Window_0()
#Window_0= 0
If OpenWindow ( #Window_0 , 363, 117, 472, 423, "[--Alpha--]::[By DoctorB]" , #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar ) ; on ouvre une fenetre
SetWindowColor(#Window_0, 000000)
If CreateMenu(0, WindowID(0)) ; la création du menu commence ici....
MenuTitle("--AlphaMenu--")
MenuItem(1, "OoO")
MenuItem(2, "AaA")
MenuTitle("--?--")
MenuItem(3, "A propos")
EndIf
OpenWindowedScreen ( WindowID ( #Window_0 ), 35, 10, 472, 410, 0, 1, 1) ; on creer un ecran graphique dedans
If CreateGadgetList ( WindowID ( #Window_0 )) ; la liste gadget pour la gestion des gadgets (ici un bouton)
EndIf
EndIf
EndProcedure
Simplement je souhaite que quand on clique sur un item ca ouvre un web gadget(allez,google !).
Mais le problème c'est que ayant fais ca la fenetre spritée se ferme,et en
suivant le tuto de Jacob ca me fais des erreurs partout

Voila ce que je souhaiterai :
Une fenêtre de chargement...
Elle se ferme a la fin du chargement et ca ouvre ma belle fenêtre(enfin celle de Dobro xD)et quand on clique sur les items menu ca ouvre des web gadgets DANS UNE NOUVELLE FENETRE !
Eclairez moi j'ai usé de tous les moyens(sauf écouter Tokio Hotel quand je code)alors svp eclairez moi !!
Et puis si vous arrivez pas : ca veut dire que moi non plus j'y arriverai pas donc je laisserai tomber

A plus !