Bien que programmant depuis longtemps en PureBasic, j'ai profité du confinement pour me payer la formation de chez Udemy "Purebasic pour les nulles". Bien sûr il y a beaucoup de choses que je connaissait, mais un petit vaccin de rappel ne fait jamais de mal. A ce sujet si je peux me permettre une petite remarque au sujet du titre de cette formation, j'aurais écrit "PureBasic pour les nuls" a moins que celle-ci ne s'adresse à la gente féminine. Si c'est le cas on pourrait déceler un peu de misogynie dans celui-ci.

Mais comme je vous le disait, même un amateur un peu éclairé trouvera quelques astuces (Je n'en suis qu'a la moitié de la formation) qui lui avait échappé. A ce sujet, j'ai essayé dans l'éditeur la touche F9 et sur mon Mac, j'ai un plantage de l'éditeur. J'attends un retour de ceux qui travaillent sur ce genre de bécane pour savoir si le problème viens de mon côté.

Pour en venir au coeur de mon sujet, j'ai fait connaissance avec la fonction "BindEvent" que j'avais bien vu dans la doc, mais comme je le disait précédemment dans un autre post, la doc est souvent confuse et ne révèle pas toujours la substantifique moelle des commandes.
Dans cette formation, j'ai enfin compris à quoi ça pouvait servir, seulement il y a un mais...


En cherchant dans le forum, je me suis aperçu que beaucoup d'entre vous utilisaient cette commande pour simplifier la boucle d'évènement d'un fenêtre. Et c'est là que le bas blesse...

Pour une fenêtre pas de problème et c'est tout simple, mais quand est t'il lorsque le programme comporte une dizaine de fenêtres et qu'on veux les fermer les unes après les autres sans pour autant quitter le programme ?
Voici la méthode que j'ai employé ;
Code : Tout sélectionner
Enumeration
#window1
#window2
EndEnumeration
Enumeration gadget
#Bchange
#CanvasDessin
EndEnumeration
Procedure ClicBouton()
OpenWindow(#window2,0,0,400,400,"Fenêtre 2",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
EndProcedure
Procedure FermetureF2()
CloseWindow(#window2)
EndProcedure
Procedure FermetureF1()
CloseWindow(#window1)
End
EndProcedure
OpenWindow(#window1,0,0,800,600,"Fenêtre 1",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(#Bchange,20,500,100,25,"Ouverture")
BindGadgetEvent(#Bchange,@ClicBouton())
BindEvent(#PB_Event_CloseWindow,@FermetureF2(),#window2)
BindEvent(#PB_Event_CloseWindow,@FermetureF1(),#window1)
Repeat
WaitWindowEvent()
ForEver

Je vous remercie d'avance pour vos réponses.
