Page 1 sur 2

[Résolu] Petit Problème ouverture 2ème fenêtre

Publié : dim. 25/janv./2009 11:28
par Clad3815
Bonjour a tous,

Voila déja plusieurs mois que je touche un peu le PureBasic (J'ai décider d'apprendre tout seul ^^)

Mais la j'ai un problème :x.

Je m'explique, j'ai ma fenêtre de base, jusqu'à la tout vas bien.
Mais je n'arrive pas a relié un bouton a l'ouverture de ma 2ème fenêtre.

Via le créateur, il me génère ce code :

Code : Tout sélectionner

Procedure Open_Window_1()
  If OpenWindow(#Window_1, 579, -7, 320, 571, "Activation du logiciel",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_1))
      WebGadget(#Web_3, 0, 0, 740, 680, "http://clad38500.free.fr/metin2.php")
Et je voudrai qu'il soit relié au bouton 1

Merci de vos réponse

Cordialement Clad3815

Publié : dim. 25/janv./2009 11:39
par Le Soldat Inconnu
Comme ça

Par contre, c'est codé en dernière version de PB, CreateGadgetList( n'existe plus
Mets à jour ta version

Code : Tout sélectionner

Procedure Fenetre2()
  If OpenWindow(2, 0, 0, 300, 300, "Fenetre 2", #PB_Window_WindowCentered | #PB_Window_SystemMenu)
    
    Repeat
      Event = WaitWindowEvent()
      
      If EventWindow() = 2 ; On test que l'on travaille bien avec la fenêtre 2
        ; C'est important de filtrer, sinon, si tu clic sur la croix pour femer la fenêtre 1 par exemple, et bien on va fermer la fenêtre 2
         
        Select Event
          Case #PB_Event_CloseWindow
            Quitter = 1
        EndSelect
        
      EndIf
      
    Until Quitter
    
    CloseWindow(2)
    
  EndIf
EndProcedure

Procedure Fenetre1()
  If OpenWindow(1, 0, 0, 400, 400, "Fenetre 1", #PB_Window_ScreenCentered | #PB_Window_SystemMenu)
    
    ButtonGadget(1, 0, 0, 400, 25, "Ouvrir fenêtre 2")
    
    Repeat
      Event = WaitWindowEvent()
      
      Select Event
        Case #PB_Event_Gadget
          Select EventGadget()
            Case 1
              Fenetre2()
          EndSelect
      EndSelect
      
    Until Event = #PB_Event_CloseWindow
    
    CloseWindow(1)
    
  EndIf
EndProcedure

Fenetre1()

Publié : dim. 25/janv./2009 12:13
par Clad3815
Merci, mais si je met a jour ma version sa va foiré tout mon programme non ?

Car il est très long :x

Publié : dim. 25/janv./2009 12:56
par Patrick88
pas long et pas bien compliqué, il suffit de mettre en commentaire les lignes qui sont indiquées dans la fenêtre de warning lors de la compilation du programme...

pat

Publié : dim. 25/janv./2009 14:06
par Clad3815
Patrick tu pourai m'expliquer comment faire ?

Publié : dim. 25/janv./2009 16:14
par Le Soldat Inconnu
tu as qu'elle version de PB la ?

Publié : dim. 25/janv./2009 23:14
par Clad3815
PureBasic 4.20 (Windows - x86)

Voila :P

Publié : dim. 25/janv./2009 23:49
par guerrier001
Lol va télécharger ou plutot acheter la derniere version qui est 4.30.

Publié : lun. 26/janv./2009 6:05
par MetalOS
Quand tu compilera ton code avec la version 4.30 de pb, le compilateur t'indiquera des erreur comme le CreatGadgetList() qui n'existe plus (il indiquera que c obsolète) pour ça met un ";" avant chaque commande qui te bloque l'exécution. Le point virgule permet de mettre du code en commentaire.

Publié : lun. 26/janv./2009 11:15
par Clad3815
Voila j'ai compiler avec le 4.30

J'ai sa après mon code :

Code : Tout sélectionner

Procedure Open_Window_1()
  If OpenWindow(#Window_1, 300, 6, 310, 555, "Activation du logiciel",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    ;If CreateGadgetList(WindowID(#Window_1))
      WebGadget(#Web_4, 0, 0, 330, 570, "http://clad38500.free.fr/metin2.php")
      
    ;EndIf
  EndIf
EndProcedure

Open_Window_0()
Repeat

Event = WindowEvent()
If Event = #PB_Event_Gadget
Select EventGadget()
Case #Button_0
MessageRequester("Blabla pour Bouton 0")
End
EndSelect
EndIf
Until event = #PB_Event_CloseWindow
Mais j'arrive toujours pas a ordonner d'ouvrir la 2ème fenêtre avec le bouton 1

Publié : lun. 26/janv./2009 11:50
par jbernard13
regarde ce code , il ouvre plusieurs fenetres avec differents boutons

Code : Tout sélectionner

Enumeration
  #Main
  #Fenetre1
  #Fenetre2
  #Fenetre3
  #Fenetre4
  #Fenetre5
EndEnumeration

Enumeration
  #Bouton1
  #Bouton2
  #Bouton3
  #Bouton4
  #Bouton5
  #BoutonFenetre1
  #BoutonFenetre2
  #BoutonFenetre3
  #BoutonFenetre4
  #BoutonFenetre5
  #Text
EndEnumeration

Procedure OpenWin_Main()
  If OpenWindow(#Main, 0, 0, 220, 200, "Fenetres", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
    If CreateGadgetList(WindowID(0))
      ButtonGadget(#Bouton1, 10,  10, 200, 20, "Ouvrir fenêtre 1")
      ButtonGadget(#Bouton2, 10,  40, 200, 20, "Ouvrir fenêtre 2")
      ButtonGadget(#Bouton3, 10,  70, 200, 20, "Ouvrir fenêtre 3")
      ButtonGadget(#Bouton4, 10, 100, 200, 20, "Ouvrir fenêtre 4")
      ButtonGadget(#Bouton5, 10, 130, 200, 20, "Ouvrir fenêtre 5")
      TextGadget(#Text, 10, 180, 200, 20, "Pas de fenêtre ouverte", #PB_Text_Center)
    EndIf
  EndIf
EndProcedure

Procedure OpenWin_1()
  If OpenWindow(#Fenetre1, 0, 0, 220, 40, "Fenetre 1", #PB_Window_SystemMenu, WindowID(#Main))
    If CreateGadgetList(WindowID(#Fenetre1))
      ButtonGadget(#BoutonFenetre1, 10,  10, 200, 20, "Fermer fenêtre 1")
      
      ProcedureReturn #True
    EndIf
  EndIf
EndProcedure

Procedure OpenWin_2()
  If OpenWindow(#Fenetre2, 0, 70, 220, 40, "Fenetre 2", #PB_Window_SystemMenu, WindowID(#Main))
    If CreateGadgetList(WindowID(#Fenetre2))
      ButtonGadget(#BoutonFenetre2, 10,  10, 200, 20, "Fermer fenêtre 2")
      
      ProcedureReturn #True
    EndIf
  EndIf
EndProcedure

Procedure OpenWin_3()
  If OpenWindow(#Fenetre3, 0, 140, 220, 40, "Fenetre 3", #PB_Window_SystemMenu, WindowID(#Main))
    If CreateGadgetList(WindowID(#Fenetre3))
      ButtonGadget(#BoutonFenetre3, 10,  10, 200, 20, "Fermer fenêtre 3")
      
      ProcedureReturn #True
    EndIf
  EndIf
EndProcedure

Procedure OpenWin_4()
  If OpenWindow(#Fenetre4, 0, 210, 220, 40, "Fenetre 4", #PB_Window_SystemMenu, WindowID(#Main))
    If CreateGadgetList(WindowID(#Fenetre4))
      ButtonGadget(#BoutonFenetre4, 10,  10, 200, 20, "Fermer fenêtre 4")
      
      ProcedureReturn #True
    EndIf
  EndIf
EndProcedure

Procedure OpenWin_5()
  If OpenWindow(#Fenetre5, 0, 280, 220, 40, "Fenetre 5", #PB_Window_SystemMenu, WindowID(#Main))
    If CreateGadgetList(WindowID(#Fenetre5))
      ButtonGadget(#BoutonFenetre5, 10,  10, 200, 20, "Fermer fenêtre 5")
      
      ProcedureReturn #True
    EndIf
  EndIf
EndProcedure

OpenWin_Main()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      Select EventGadget()
        ;/ Ouverture des fenêtres "fille"
        Case #Bouton1
          If OpenWin_1()
            SetGadgetText(#Text, "Vous avez ouvert la fenêtre 1")
          EndIf
          
        Case #Bouton2
          If OpenWin_2()
            SetGadgetText(#Text, "Vous avez ouvert la fenêtre 2")
          EndIf
          
        Case #Bouton3
          If OpenWin_3()
            SetGadgetText(#Text, "Vous avez ouvert la fenêtre 3")
          EndIf
          
        Case #Bouton4
          If OpenWin_4()
            SetGadgetText(#Text, "Vous avez ouvert la fenêtre 4")
          EndIf
          
        Case #Bouton5
          If OpenWin_5()
            SetGadgetText(#Text, "Vous avez ouvert la fenêtre 5")
          EndIf
          
          ;/ Femeture des fenêtres "fille" par le bouton
        Case #BoutonFenetre1
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 1")
          CloseWindow(#Fenetre1)
          
        Case #BoutonFenetre2
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 2")
          CloseWindow(#Fenetre2)
          
        Case #BoutonFenetre3
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 3")
          CloseWindow(#Fenetre3)
          
        Case #BoutonFenetre4
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 4")
          CloseWindow(#Fenetre4)
          
        Case #BoutonFenetre5
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 5")
          CloseWindow(#Fenetre5)
          
          
      EndSelect
      
    Case #PB_Event_CloseWindow
      Select EventWindow()
        ;/ Fermeture des fenêtres "fille" par l'icône [X]
        Case #Fenetre1
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 1")
          CloseWindow(#Fenetre1)
          
        Case #Fenetre2
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 2")
          CloseWindow(#Fenetre2)
          
        Case #Fenetre3
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 3")
          CloseWindow(#Fenetre3)
          
        Case #Fenetre4
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 4")
          CloseWindow(#Fenetre4)
          
        Case #Fenetre5
          SetGadgetText(#Text, "Vous avez fermé la fenêtre 5")
          CloseWindow(#Fenetre5)
          
          ;/ Fermeture de la fenêtre principale (et fin du programme)
        Case #Main
          Quit = #True
          
      EndSelect
  EndSelect
Until Quit
End

Publié : lun. 26/janv./2009 11:59
par Clad3815
Merci,

Je l'ai essayer, j'ai compris le code sauf la partie pour ouvrir les fenêtres.

Je sais je suis un peu c** ^^ Mais je suis jamais arriver a comprendre ce code pour l'ouverture de fenêtres :x

PS : Je peut t'envoyer tout mon code en mp pour que tu regarde, car il est confidentiel je veut pas le mettre en publique

Cordialement Clad3815

Publié : lun. 26/janv./2009 12:40
par guerrier001
le code d'ouverture est vers la fin et de fermeture avec. Il sélectionne le bouton en sélectionnant le bouton il ouvre la fenêtre. exemple

Code : Tout sélectionner

Case #Bouton1
          If OpenWin_1()
            SetGadgetText(#Text, "Vous avez ouvert la fenêtre 1")
          EndIf 
on a sélectionner la case du bouton 1 en faisant ceci cela ouvre une fenêtre Window dont il est écrit "Vous avez ouvert la fenêtre 1"(après tous le code n'est rien que des phrases ou mots anglais)

Publié : lun. 26/janv./2009 12:45
par Patrick88
y'a quoi dans le "Open_Window_0()" ?

pat

Publié : lun. 26/janv./2009 12:49
par guerrier001
le texte et les boutons pour ouvrir les fenetres