qui peux a resoudre me petit probleme avec mon code ??

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
williamm
Messages : 54
Inscription : dim. 05/sept./2004 20:21

qui peux a resoudre me petit probleme avec mon code ??

Message par williamm »

bonjour
j'ai cree ce programme pour un ami

je rencontre 1 probleme
quand je clique sur un element pour voir la fiche
j'arrive a activer le bouton quitter

qui peux m'aider a resoudre ce probleme

Code : Tout sélectionner

Enumeration
  #Window_0
   #Window_1 
   #window_2
 EndEnumeration


Enumeration
  #ListIcon_0
  #Button_Ajoutet
  #Button_Effacee
  #Text_Titre
  #Frame3D_0
 #Frame3D_ajoute
  #Text_NomS
  #String_NomS
  #Text_NomT
  #Editor_NomT
  #Text_Matos
  #Editor_matos
  #Text_date
  #String_date
  #Text_Heure
  #String_heure
  #Text_Lieux
  #Editor_Lieux
  #Button_ajoute


EndEnumeration
Enumeration 
   #menu_Charger
   #menu_Save
  #menu_Quitter 
  #menu_Vider
  #menu_info
 
  EndEnumeration 
Enumeration
 #menu_Effacec
  #menu_Annuler
EndEnumeration 
;Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 11, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(3, "Arial", 10, #PB_Font_Bold)
Global FontID4
FontID4 = LoadFont(4, "Arial", 26, #PB_Font_Bold)

;creation d'un element
Structure Tour_struct  
  Nom.s                
  ListeT.s 
  Matos.s 
  Date.s 
  Heure.s
  Lieux.s
EndStructure 

NewList Items.Tour_struct() 


;procedure de gestion des items 
Procedure.b item_clear() 
  ClearList(Items()) 
  ProcedureReturn 1 
EndProcedure 
;ajouter un element dans la liste 
Procedure.b item_add() 
  If AddElement(Items()) 
    Items()\Nom= GetGadgetText(#String_NomS)
    Items()\ListeT= GetGadgetText(#Editor_NomT)
    Items()\Matos= GetGadgetText(#Editor_matos)
    Items()\date= GetGadgetText(#String_Date) 
    Items()\Heure= GetGadgetText(#String_heure)  
    Items()\Lieux=GetGadgetText( #Editor_Lieux)
    AddGadgetItem(#ListIcon_0, -1,Items()\Nom) ;
           
   
    EndIf

  ProcedureReturn 1 
EndProcedure 




Procedure effacer()
SetGadgetText(#String_NomS, "") 
SetGadgetText(#Editor_NomT, "") 
SetGadgetText(#Editor_matos, "") 
SetGadgetText(#String_Date, "") 
SetGadgetText(#String_Heure, "")
SetGadgetText(#Editor_lieux, "")
ActivateGadget(#String_NomS)
EndProcedure



Procedure info()
MessageRequester("Information sur Merlin ", "Merlin Version 01 " + Chr(10) + "Par William marcy" + Chr(10) + "Copyright 2004 ", #MB_OK|#MB_ICONINFORMATION)
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 18, 13, 955, 675,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar , "Merlin le Gestionnaire de Prestation  ")
    If CreateGadgetList(WindowID())
      
      ;-
      ListIconGadget(#ListIcon_0, 20, 20, 700, 630, "Nom du spectacle ", 696, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines)
      SetGadgetFont(#ListIcon_0, FontID1)
      ButtonGadget(#Button_Ajoutet, 740, 80, 190, 50, "AJOUTER")
      GadgetToolTip(#Button_Ajoutet, "Ajoute un spectacle a la liste ")
      SetGadgetFont(#Button_Ajoutet, FontID2)
      ButtonGadget(#Button_Effacee, 740, 210, 190, 50, "EFFACER")
      GadgetToolTip(#Button_Effacee, "Efface un spectacle de la liste ")
      SetGadgetFont(#Button_Effacee, FontID2)
      TextGadget(#Text_Titre, 750, 460, 180, 100, "Merlin Version 01 ", #PB_Text_Center)
      SetGadgetFont(#Text_Titre, FontID4)
      Frame3DGadget(#Frame3D_0, 730, 20, 210, 600, "")
      
If CreateMenu(0,WindowID()) 
        MenuTitle( "Fichier") 
        
        MenuItem(#menu_Charger ,"Charger la  liste") 
        MenuItem(#menu_Save ,"Sauvegarder la liste")
        MenuItem(#menu_Quitter,"Quitter ") 
        MenuTitle("Edition")
        MenuItem(#menu_vider," Vider la liste ")
        MenuTitle ("Information")
        MenuItem(#menu_info," A propos de ")
    

     EndIf

    EndIf
  EndIf
EndProcedure


Procedure Open_Window_1()
  If OpenWindow(#Window_1, 255, 7, 678, 724,   #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered , "Creation d'une nouvelle fiche ")
    If CreateGadgetList(WindowID())
      Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
      TextGadget(#Text_NomS, 20, 40, 150, 30, "Nom du spectacle :", #PB_Text_Center)
      SetGadgetFont(#Text_NomS, FontID2)
      StringGadget(#String_NomS, 180, 40, 480, 28, "")
      SetGadgetFont(#String_NomS, FontID3)
      TextGadget(#Text_NomT, 20, 110, 150, 30, "Listes des tours : ", #PB_Text_Center)
      SetGadgetFont(#Text_NomT, FontID2)
      EditorGadget(#Editor_NomT, 180, 110, 480, 100)
      SetGadgetFont(#Editor_NomT, FontID3)
      TextGadget(#Text_Matos, 20, 280, 130, 30, "Materiel : ", #PB_Text_Center)
      SetGadgetFont(#Text_Matos, FontID2)
      EditorGadget(#Editor_matos, 180, 280, 480, 130)
      SetGadgetFont(#Editor_matos, FontID3)
      TextGadget(#Text_date, 30, 460, 110, 30, "Date :", #PB_Text_Center)
      SetGadgetFont(#Text_date, FontID2)
      StringGadget(#String_date, 140, 460, 120, 30, "")
      SetGadgetFont(#String_date, FontID3)
      TextGadget(#Text_Heure, 360, 460, 110, 20, "Heure :", #PB_Text_Center)
      SetGadgetFont(#Text_Heure, FontID2)
      StringGadget(#String_heure, 480, 460, 130, 25, "")
      SetGadgetFont(#String_heure, FontID3)
      TextGadget(#Text_Lieux, 160, 520, 80, 20, "Lieux: ", #PB_Text_Center)
      SetGadgetFont(#Text_Lieux, FontID2)
      EditorGadget(#Editor_Lieux, 270, 510, 380, 80)
      SetGadgetFont(#Editor_Lieux, FontID3)
      ButtonGadget(#Button_ajoute, 200, 620, 290, 50, "Ajouter  un nouveau spectacle  ")
      GadgetToolTip(#Button_ajoute, "Ajoute une prestation a la liste ")
      SetGadgetFont(#Button_ajoute, FontID2)
       If CreateMenu(1,WindowID()) 
       MenuTitle( "Edition") 
     MenuItem(#menu_Effacec," Effacer les Renseignement  ")
     MenuItem(#menu_Annuler," Annuler la fiche ")
     Repeat 
        
        Event = WaitWindowEvent() 
        
        Select Event 
         
            
         Case #PB_EventMenu 
      Select EventMenuID() 
         Case#menu_Effacec :effacer()
          Case #menu_Annuler: Fermer_Window_1 = 1 

           EndSelect
 
                       
            
   Case #PB_EventGadget 
           
             
            GadgetID = EventGadgetID() 
              
 
 
            If GadgetID = #Button_Ajoute 
             
              item_add() 
               
              
             
              Fermer_Window_1 = 1 
                              
               
              EndIf

             
              EndSelect 

 
        
      Until Fermer_Window_1 = 1 
      
      CloseWindow(#Window_1) 
     While WindowEvent():Wend 
    EndIf
    EndIf 
  EndIf 
EndProcedure 

Procedure Open_Window_2()
  If OpenWindow(#Window_1, 255, 7, 678, 724,   #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered , "Fiche du spectacle  ")
    If CreateGadgetList(WindowID())
      Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
      TextGadget(#Text_NomS, 20, 40, 150, 30, "Nom du spectacle :", #PB_Text_Center)
      SetGadgetFont(#Text_NomS, FontID2)
      StringGadget(#String_NomS, 180, 40, 480, 28, "")
      SetGadgetFont(#String_NomS, FontID3)
      TextGadget(#Text_NomT, 20, 110, 150, 30, "Listes des tours : ", #PB_Text_Center)
      SetGadgetFont(#Text_NomT, FontID2)
      EditorGadget(#Editor_NomT, 180, 110, 480, 100)
      SetGadgetFont(#Editor_NomT, FontID3)
      TextGadget(#Text_Matos, 20, 280, 130, 30, "Materiel : ", #PB_Text_Center)
      SetGadgetFont(#Text_Matos, FontID2)
      EditorGadget(#Editor_matos, 180, 280, 480, 130)
      SetGadgetFont(#Editor_matos, FontID3)
      TextGadget(#Text_date, 30, 460, 110, 30, "Date :", #PB_Text_Center)
      SetGadgetFont(#Text_date, FontID2)
      StringGadget(#String_date, 140, 460, 120, 30, "")
      SetGadgetFont(#String_date, FontID3)
      TextGadget(#Text_Heure, 360, 460, 110, 20, "Heure :", #PB_Text_Center)
      SetGadgetFont(#Text_Heure, FontID2)
      StringGadget(#String_heure, 480, 460, 130, 25, "")
      SetGadgetFont(#String_heure, FontID3)
      TextGadget(#Text_Lieux, 160, 520, 80, 20, "Lieux: ", #PB_Text_Center)
      SetGadgetFont(#Text_Lieux, FontID2)
      EditorGadget(#Editor_Lieux, 270, 510, 380, 80)
      SetGadgetFont(#Editor_Lieux, FontID3)
    

  ButtonGadget(#Button_ajoute, 200, 620, 290, 50, " Quitter la fiche   ")
   SetGadgetFont(#Button_ajoute, FontID2)
        
         ForEach Items() 
        If Items()\Nom = GetGadgetItemText(#ListIcon_0, Element, 0) 
          SetGadgetText(#String_NomS,Items()\Nom)  
          SetGadgetText(#Editor_NomT,Items()\ListeT) 
          SetGadgetText(#Editor_matos,Items()\Matos)
          SetGadgetText(#String_Date,Items()\date) 
          SetGadgetText(#String_heure,Items()\Heure) 
          SetGadgetText(#editor_lieux,Items()\Lieux)
          Break 
        EndIf 
      Next  
      
      Repeat 
        
        Event = WaitWindowEvent() 
        
        Select Event 
          Case #PB_EventCloseWindow 
            Fermer_Window_2 = 1 
            
          Case #PB_EventGadget 
            GadgetID = EventGadgetID() 
     If GadgetID = #Button_Ajoute 
              Fermer_Window_2 = 1 
            EndIf 
        EndSelect 
        
      Until Fermer_Window_2 = 1 
      
      CloseWindow(#Window_2) 
    EndIf 
  EndIf 
EndProcedure 
      

Open_Window_0()
Repeat 
  
 Event = WaitWindowEvent() 
 Select Event 
  Case #PB_EventMenu 
      Select EventMenuID() 
              Case #menu_Info:info()
        Case#menu_Quitter :fermer_window_0=1     
           EndSelect


         Case #PB_EventGadget  
         Select EventGadgetID() 
        Case #ListIcon_0 
        GetGadgetState(#ListIcon_0) :Open_Window_2() 
   
             

      Case #Button_Ajoutet:open_window_1()
           
      
      EndSelect 

Case #PB_EventCloseWindow 
      fermer_window_0= 1 
        
           
         
  EndSelect 
  
Until fermer_window_0= 1 

End 

merci de m'aider svp

Williamm
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Voilà, j'ai mis en évidence l'erreur, je te laisse le soin de la corriger.

Code : Tout sélectionner

Procedure Open_Window_2() 
  If OpenWindow(#Window_1, 255, 7, 678, 724,   #PB_Window_TitleBar

/------------------------------

CloseWindow(#Window_2) 
Attention au copier-coller et penser à faire les modifications qui s'imposent.

:)
Dernière modification par nico le dim. 24/oct./2004 13:46, modifié 1 fois.
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

Code : Tout sélectionner

Enumeration
  #Window_0
  #Window_1
  #window_2
EndEnumeration


Enumeration
  #ListIcon_0
  #Button_Ajoutet
  #Button_Effacee
  #Text_Titre
  #Frame3D_0
  #Frame3D_ajoute
  #Text_NomS
  #String_NomS
  #Text_NomT
  #Editor_NomT
  #Text_Matos
  #Editor_matos
  #Text_date
  #String_date
  #Text_Heure
  #String_heure
  #Text_Lieux
  #Editor_Lieux
  #Button_ajoute
  
  
EndEnumeration
Enumeration
  #menu_Charger
  #menu_Save
  #menu_Quitter
  #menu_Vider
  #menu_info
  
EndEnumeration
Enumeration
  #menu_Effacec
  #menu_Annuler
EndEnumeration
; Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 11, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(3, "Arial", 10, #PB_Font_Bold)
Global FontID4
FontID4 = LoadFont(4, "Arial", 26, #PB_Font_Bold)

; creation d'un element
Structure Tour_struct
  Nom.s
  ListeT.s
  Matos.s
  Date.s
  Heure.s
  Lieux.s
EndStructure

NewList Items.Tour_struct()


; procedure de gestion des items
Procedure.b item_clear()
  ClearList(Items())
  ProcedureReturn 1
EndProcedure
; ajouter un element dans la liste
Procedure.b item_add()
  If AddElement(Items())
    Items()\Nom = GetGadgetText(#String_NomS)
    Items()\ListeT = GetGadgetText(#Editor_NomT)
    Items()\Matos = GetGadgetText(#Editor_matos)
    Items()\date = GetGadgetText(#String_Date)
    Items()\Heure = GetGadgetText(#String_heure)
    Items()\Lieux = GetGadgetText( #Editor_Lieux)
    AddGadgetItem(#ListIcon_0, -1, Items()\Nom) ;
    
    
  EndIf
  
  ProcedureReturn 1
EndProcedure




Procedure effacer()
  SetGadgetText(#String_NomS, "")
  SetGadgetText(#Editor_NomT, "")
  SetGadgetText(#Editor_matos, "")
  SetGadgetText(#String_Date, "")
  SetGadgetText(#String_Heure, "")
  SetGadgetText(#Editor_lieux, "")
  ActivateGadget(#String_NomS)
EndProcedure



Procedure info()
  MessageRequester("Information sur Merlin ", "Merlin Version 01 " + Chr(10) + "Par William marcy" + Chr(10) + "Copyright 2004 ", #MB_OK | #MB_ICONINFORMATION)
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 18, 13, 955, 675, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar, "Merlin le Gestionnaire de Prestation  ")
    If CreateGadgetList(WindowID())
      
      ;-
      ListIconGadget(#ListIcon_0, 20, 20, 700, 630, "Nom du spectacle ", 696, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines)
      SetGadgetFont(#ListIcon_0, FontID1)
      ButtonGadget(#Button_Ajoutet, 740, 80, 190, 50, "AJOUTER")
      GadgetToolTip(#Button_Ajoutet, "Ajoute un spectacle a la liste ")
      SetGadgetFont(#Button_Ajoutet, FontID2)
      ButtonGadget(#Button_Effacee, 740, 210, 190, 50, "EFFACER")
      GadgetToolTip(#Button_Effacee, "Efface un spectacle de la liste ")
      SetGadgetFont(#Button_Effacee, FontID2)
      TextGadget(#Text_Titre, 750, 460, 180, 100, "Merlin Version 01 ", #PB_Text_Center)
      SetGadgetFont(#Text_Titre, FontID4)
      Frame3DGadget(#Frame3D_0, 730, 20, 210, 600, "")
      
      If CreateMenu(0, WindowID())
        MenuTitle( "Fichier")
        
        MenuItem(#menu_Charger, "Charger la  liste")
        MenuItem(#menu_Save, "Sauvegarder la liste")
        MenuItem(#menu_Quitter, "Quitter ")
        MenuTitle("Edition")
        MenuItem(#menu_vider, " Vider la liste ")
        MenuTitle ("Information")
        MenuItem(#menu_info, " A propos de ")
        
        
      EndIf
      
    EndIf
  EndIf
EndProcedure


Procedure Open_Window_1()
  If OpenWindow(#Window_1, 255, 7, 678, 724, #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Creation d'une nouvelle fiche ")
    If CreateGadgetList(WindowID())
      Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
      TextGadget(#Text_NomS, 20, 40, 150, 30, "Nom du spectacle :", #PB_Text_Center)
      SetGadgetFont(#Text_NomS, FontID2)
      StringGadget(#String_NomS, 180, 40, 480, 28, "")
      SetGadgetFont(#String_NomS, FontID3)
      TextGadget(#Text_NomT, 20, 110, 150, 30, "Listes des tours : ", #PB_Text_Center)
      SetGadgetFont(#Text_NomT, FontID2)
      EditorGadget(#Editor_NomT, 180, 110, 480, 100)
      SetGadgetFont(#Editor_NomT, FontID3)
      TextGadget(#Text_Matos, 20, 280, 130, 30, "Materiel : ", #PB_Text_Center)
      SetGadgetFont(#Text_Matos, FontID2)
      EditorGadget(#Editor_matos, 180, 280, 480, 130)
      SetGadgetFont(#Editor_matos, FontID3)
      TextGadget(#Text_date, 30, 460, 110, 30, "Date :", #PB_Text_Center)
      SetGadgetFont(#Text_date, FontID2)
      StringGadget(#String_date, 140, 460, 120, 30, "")
      SetGadgetFont(#String_date, FontID3)
      TextGadget(#Text_Heure, 360, 460, 110, 20, "Heure :", #PB_Text_Center)
      SetGadgetFont(#Text_Heure, FontID2)
      StringGadget(#String_heure, 480, 460, 130, 25, "")
      SetGadgetFont(#String_heure, FontID3)
      TextGadget(#Text_Lieux, 160, 520, 80, 20, "Lieux: ", #PB_Text_Center)
      SetGadgetFont(#Text_Lieux, FontID2)
      EditorGadget(#Editor_Lieux, 270, 510, 380, 80)
      SetGadgetFont(#Editor_Lieux, FontID3)
      ButtonGadget(#Button_ajoute, 200, 620, 290, 50, "Ajouter  un nouveau spectacle  ")
      GadgetToolTip(#Button_ajoute, "Ajoute une prestation a la liste ")
      SetGadgetFont(#Button_ajoute, FontID2)
      If CreateMenu(1, WindowID())
        MenuTitle( "Edition")
        MenuItem(#menu_Effacec, " Effacer les Renseignement  ")
        MenuItem(#menu_Annuler, " Annuler la fiche ")
        Repeat
          
          Event = WaitWindowEvent()
          
          Select Event
              
              
            Case #PB_EventMenu
              Select EventMenuID()
                  Case#menu_Effacec : effacer()
                Case #menu_Annuler : Fermer_Window_1 = 1
                  
              EndSelect
              
              
              
            Case #PB_EventGadget
              
              
              GadgetID = EventGadgetID()
              
              
              
              If GadgetID = #Button_Ajoute
                
                item_add()
                
                
                
                Fermer_Window_1 = 1
                
                
              EndIf
              
              
          EndSelect
          
          
          
        Until Fermer_Window_1 = 1
        
        CloseWindow(#Window_1)
        While WindowEvent() : Wend
      EndIf
    EndIf
  EndIf
EndProcedure

Procedure Open_Window_2()
  If OpenWindow(#window_2, 255, 7, 678, 724, #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Fiche du spectacle  ")
    If CreateGadgetList(WindowID())
      Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
      TextGadget(#Text_NomS, 20, 40, 150, 30, "Nom du spectacle :", #PB_Text_Center)
      SetGadgetFont(#Text_NomS, FontID2)
      StringGadget(#String_NomS, 180, 40, 480, 28, "")
      SetGadgetFont(#String_NomS, FontID3)
      TextGadget(#Text_NomT, 20, 110, 150, 30, "Listes des tours : ", #PB_Text_Center)
      SetGadgetFont(#Text_NomT, FontID2)
      EditorGadget(#Editor_NomT, 180, 110, 480, 100)
      SetGadgetFont(#Editor_NomT, FontID3)
      TextGadget(#Text_Matos, 20, 280, 130, 30, "Materiel : ", #PB_Text_Center)
      SetGadgetFont(#Text_Matos, FontID2)
      EditorGadget(#Editor_matos, 180, 280, 480, 130)
      SetGadgetFont(#Editor_matos, FontID3)
      TextGadget(#Text_date, 30, 460, 110, 30, "Date :", #PB_Text_Center)
      SetGadgetFont(#Text_date, FontID2)
      StringGadget(#String_date, 140, 460, 120, 30, "")
      SetGadgetFont(#String_date, FontID3)
      TextGadget(#Text_Heure, 360, 460, 110, 20, "Heure :", #PB_Text_Center)
      SetGadgetFont(#Text_Heure, FontID2)
      StringGadget(#String_heure, 480, 460, 130, 25, "")
      SetGadgetFont(#String_heure, FontID3)
      TextGadget(#Text_Lieux, 160, 520, 80, 20, "Lieux: ", #PB_Text_Center)
      SetGadgetFont(#Text_Lieux, FontID2)
      EditorGadget(#Editor_Lieux, 270, 510, 380, 80)
      SetGadgetFont(#Editor_Lieux, FontID3)
      
      
      ButtonGadget(#Button_ajoute, 200, 620, 290, 50, " Quitter la fiche   ")
      SetGadgetFont(#Button_ajoute, FontID2)
      
      ForEach Items()
        If Items()\Nom = GetGadgetItemText(#ListIcon_0, Element, 0)
          SetGadgetText(#String_NomS, Items()\Nom)
          SetGadgetText(#Editor_NomT, Items()\ListeT)
          SetGadgetText(#Editor_matos, Items()\Matos)
          SetGadgetText(#String_date, Items()\Date)
          SetGadgetText(#String_heure, Items()\Heure)
          SetGadgetText(#Editor_Lieux, Items()\Lieux)
          Break
        EndIf
      Next
      
      Repeat
        
        Event = WaitWindowEvent()
        
        Select Event
          Case #PB_EventCloseWindow
            Fermer_Window_2 = 1
            
          Case #PB_EventGadget
            GadgetID = EventGadgetID()
            If GadgetID = #Button_ajoute
              Fermer_Window_2 = 1
            EndIf
        EndSelect
        
      Until Fermer_Window_2 = 1
      
      CloseWindow(#window_2)
    EndIf
  EndIf
EndProcedure


Open_Window_0()
Repeat
  
  Event = WaitWindowEvent()
  Select Event
    Case #PB_EventMenu
      Select EventMenuID()
        Case #menu_info : info()
          Case#menu_Quitter : fermer_window_0 = 1
      EndSelect
      
      
    Case #PB_EventGadget
      Select EventGadgetID()
        Case #ListIcon_0
          GetGadgetState(#ListIcon_0) : Open_Window_2()
          
          
          
        Case #Button_Ajoutet : Open_Window_1()
          
          
      EndSelect
      
    Case #PB_EventCloseWindow
      fermer_window_0 = 1
      
      
      
  EndSelect
  
Until fermer_window_0 = 1

End
tu avais mis #window_1 au lieu de #window_2 dans ta procedure
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

bon ben, double réponse instantanée :D
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
williamm
Messages : 54
Inscription : dim. 05/sept./2004 20:21

Message par williamm »

merci pour vos reponse

voila j'ai creer un bouton dans la fenetre 0
je veux quand l'utisateur coche la checkbox
il clique sur le bouton que 'jai cree pour voir la fiche( fenetre2)
j'ai cree cette procedure mais j'ai un message d'erreur a la ligne Open_Window_2() , qui peux m'aider svp
Procedure fiche()
i=1
If GetGadgetItemState(#ListIcon_0,i) & #PB_ListIcon_Checked
Open_Window_2()

EndProcedure

[/code]

merci

Williamm
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Pourquoi tu n'as pas terminé ton premier Prog, je vois bien que le second est basé sur le premier mais il manque pas mal de fonctions que tu devrais implanter.
williamm
Messages : 54
Inscription : dim. 05/sept./2004 20:21

Message par williamm »

j'arrive a creer un fichier INI pour la sauvegarde mais j'arrive pas le charger ...

qui peux m'expliquer .

Code : Tout sélectionner


Enumeration
  #Window_0
   #Window_1 
   #window_2
 EndEnumeration


Enumeration
  #ListIcon_0
  #Button_Ajoutet
  #Button_Effacee
 #Button_Fiche
  
  #Text_Titre
  #Frame3D_0

 #Frame3D_ajoute
  #Text_NomS
  #String_NomS
  #Text_NomT
  #editor_NomT
    #Text_Matos
  #Editor_matos
  #Text_date
  #String_date
  #Text_Heure
  #String_heure
  #Text_Lieux
  #Editor_Lieux
  #Button_ajoute
  #button_ajou
 EndEnumeration 


Enumeration 
   #menu_Charger
   #menu_Save
  #menu_Quitter 
  #menu_Vider
  #menu_info
  EndEnumeration 

 Enumeration 
#menu_Effacec
  #menu_Annuler

 EndEnumeration 

;Fonts
Global FontID1
FontID1 = LoadFont(1, "Arial", 11, #PB_Font_Bold)
Global FontID2
FontID2 = LoadFont(2, "Arial", 12, #PB_Font_Bold)
Global FontID3
FontID3 = LoadFont(3, "Arial", 10, #PB_Font_Bold)
Global FontID4
FontID4 = LoadFont(4, "Arial", 26, #PB_Font_Bold)

;creation d'un element
Structure Tour_struct  
  Nom.s                
  ListeT.s 
  Matos.s 
  Date.s 
  Heure.s
  Lieux.s
EndStructure 

NewList Items.Tour_struct() 


;procedure de gestion des items 
Procedure.b item_clear() 
  ClearList(Items()) 
  ProcedureReturn 1 
EndProcedure 
;ajouter un element dans la liste 
Procedure.b item_add() 
  If AddElement(Items()) 
    Items()\Nom= GetGadgetText(#String_NomS)
    Items()\ListeT= GetGadgetText(#Editor_NomT)
    Items()\Matos= GetGadgetText(#Editor_matos)
    Items()\date= GetGadgetText(#String_Date) 
    Items()\Heure= GetGadgetText(#String_heure)  
    Items()\Lieux=GetGadgetText( #Editor_Lieux)
    AddGadgetItem(#ListIcon_0, -1,Items()\Nom) ;on affiche le nom dans le ListIconGadget
           
   
    EndIf

  ProcedureReturn 1 
EndProcedure 

Procedure Empty() 
  
    Item_Clear() 
  ClearGadgetItemList(#ListIcon_0)
EndProcedure



Procedure.l Item_Load(fichier.s) 
     
  If OpenPreferences(fichier) 
    
    Repeat 
      i+1 
      If PreferenceGroup("Item."+Str(i)) 
       Nom.s = ReadPreferenceString("Nom du spectacle: ","") 
        ListeT.s  = ReadPreferenceString("Liste des tours: ","") 
        Matos.s = ReadPreferenceString("Materiel:","") 
       Date.s = ReadPreferenceString("date :","") 
              Heure.s = ReadPreferenceString("Heure:","") 

        Lieux.s = ReadPreferenceString("Lieux:","") 

        ;Item_Add(Nom,ListeT,matos,Date,Heure,Lieux) 
      Else 
        Break 
      EndIf 
    ForEver 
    
    ClosePreferences() 
    ProcedureReturn i 
    
  EndIf 
  
EndProcedure 

Procedure.l Item_Save(fichier.s) 
  
  
  If CreatePreferences(fichier) 
    
    ForEach Items() 
      i+1 
      PreferenceGroup("Item."+Str(i)) 
      WritePreferenceString("Nom du spectacle",Items()\Nom) 
       WritePreferenceString("Nom du spectacle",Items()\ListeT)  
       WritePreferenceString("Materiel",Items()\Matos) 
        WritePreferenceString("Date",Items()\Date)
          WritePreferenceString("Heure",Items()\heure)
          WritePreferenceString("Lieux",Items()\Lieux)
    Next 
    
    ClosePreferences() 
    ProcedureReturn i 
    
  EndIf 
  
EndProcedure 


Procedure Open(append.b) 

  
  ;- Ouvre un fichier 
  ;- 
 fichier.s = OpenFileRequester("Ouvrir","fichier.ini","ini | *.ini",0) 

  
  If fichier <> "" 
    
    If append 
      ClearGadgetItemList(#ListIcon_0) 
    Else 
      Item_Clear() 
    EndIf 
    
    Item_Load(fichier) 
    
    ForEach Items() 
     line.s =Items()\Nom+Chr(10) 
           
          SetGadgetText(#String_NomS, Items()\Nom) 
          SetGadgetText(#Editor_Nomt, Items()\ListeT) 
         SetGadgetText(#Editor_matos, Items()\Matos) 
          SetGadgetText(#String_date, Items()\Date) 
          SetGadgetText(#String_heure, Items()\Heure) 
          SetGadgetText(#Editor_Lieux, Items()\Lieux) 
            AddGadgetItem(#listIcon_0,-1,line) 
   
         
          Break 


    Next 
  
   
  EndIf 
  
EndProcedure 

  
 
Procedure SaveAs() 
  
  ;- 
  ;- Enregistre sous... 
  ;- 
  
  fichier.s = SaveFileRequester("Enregistrer sous","*.ini","ini | ini",0) 
  
  If fichier <> "" 
    Item_Save(fichier) 
  EndIf 
  
EndProcedure 











Procedure RemoveGadget() 
  
 i = 0 
      
      If GetGadgetItemState(#ListIcon_0, i) & #PB_ListIcon_Checked ; Si l'item est marqué 
      
     
      RemoveGadgetItem(#ListIcon_0,i); on le retire 
      EndIf

EndProcedure 


Procedure effacer()
SetGadgetText(#String_NomS, "") 
SetGadgetText(#editor_NomT, "") 
SetGadgetText(#Editor_matos, "") 
SetGadgetText(#String_Date, "") 
SetGadgetText(#String_Heure, "")
SetGadgetText(#Editor_lieux, "")
ActivateGadget(#String_NomS)
EndProcedure



Procedure info()
MessageRequester("Information sur Merlin ", "Merlin Version 01 " + Chr(10) + "par Williamm" + Chr(10) + "Copyright 2004 ", #MB_OK|#MB_ICONINFORMATION)
EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 18, 13, 955, 675,  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar , "Merlin le Gestionnaire de Prestation  copyright 2004 ")
    
    If CreateMenu(0,WindowID()) 
        MenuTitle( "Fichier") 
        
        MenuItem(#menu_Charger ,"Charger la  liste") 
        MenuItem(#menu_Save ,"Sauvegarder la liste")
        MenuItem(#menu_Quitter,"Quitter ") 
        MenuTitle("Edition")
        MenuItem(#menu_vider," Vider la liste ")
        MenuTitle ("Information")
        MenuItem(#menu_info," A propos de ")
    

     EndIf
   
      
      
    

    If CreateGadgetList(WindowID())
      
    
      ListIconGadget(#ListIcon_0, 20, 20, 700, 630, "Nom du spectacle ", 696, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines)
      SetGadgetFont(#ListIcon_0, FontID1)
      ButtonGadget(#Button_Ajoutet, 740, 40, 190, 50, "AJOUTER")
      GadgetToolTip(#Button_Ajoutet, "Ajoute un spectacle a la liste ")
      SetGadgetFont(#Button_Ajoutet, FontID2)
      ButtonGadget(#Button_Effacee, 740, 220, 190, 50, "EFFACER")
      GadgetToolTip(#Button_Effacee, "Efface un spectacle de la liste en cochant la case  ")
      SetGadgetFont(#Button_Effacee, FontID2)
       ButtonGadget(#Button_Fiche, 740, 120, 190, 50, "VOIR LA FICHE ")
      GadgetToolTip(#Button_Fiche, "Voir la fiche en cochant la case ")
      SetGadgetFont(#Button_Fiche, FontID2)

      
      TextGadget(#Text_Titre, 750, 460, 180, 100, "Merlin Version 01 ", #PB_Text_Center)
      SetGadgetFont(#Text_Titre, FontID4)
      Frame3DGadget(#Frame3D_0, 730, 20, 210, 600, "")
      


    EndIf
  EndIf
EndProcedure


Procedure Open_Window_1()
  If OpenWindow(#Window_1, 255, 7, 678, 724,   #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered , "Creation d'une nouvelle fiche ")
    If CreateMenu(1,WindowID()) 
    MenuTitle( "Edition") 
   MenuItem(#menu_Effacec," Effacer les Renseignement  ")
  MenuItem(#menu_Annuler," Annuler la fiche ")
     EndIf
    If CreateGadgetList(WindowID())
      Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "")
      TextGadget(#Text_NomS, 20, 40, 150, 30, "Nom du spectacle :", #PB_Text_Center)
      SetGadgetFont(#Text_NomS, FontID2)
      StringGadget(#String_NomS, 180, 40, 480, 28, "")
      SetGadgetFont(#String_NomS, FontID3)
      TextGadget(#Text_NomT, 20, 110, 150, 30, "Listes des tours : ", #PB_Text_Center)
      SetGadgetFont(#Text_NomT, FontID2)
      EditorGadget(#editor_NomT, 180, 110, 480, 100,"")
      SetGadgetFont(#editor_NomT, FontID3)
      TextGadget(#Text_Matos, 20, 280, 130, 30, "Materiel : ", #PB_Text_Center)
      SetGadgetFont(#Text_Matos, FontID2)
      EditorGadget(#Editor_matos, 180, 280, 480, 130)
      SetGadgetFont(#Editor_matos, FontID3)
      TextGadget(#Text_date, 30, 460, 110, 30, "Date :", #PB_Text_Center)
      SetGadgetFont(#Text_date, FontID2)
      StringGadget(#String_date, 140, 460, 120, 30, "")
      SetGadgetFont(#String_date, FontID3)
      TextGadget(#Text_Heure, 360, 460, 110, 20, "Heure :", #PB_Text_Center)
      SetGadgetFont(#Text_Heure, FontID2)
      StringGadget(#String_heure, 480, 460, 130, 25, "")
      SetGadgetFont(#String_heure, FontID3)
      TextGadget(#Text_Lieux, 160, 520, 80, 20, "Lieux: ", #PB_Text_Center)
      SetGadgetFont(#Text_Lieux, FontID2)
      EditorGadget(#Editor_Lieux, 270, 510, 380, 80)
      SetGadgetFont(#Editor_Lieux, FontID3)
      ButtonGadget(#Button_ajoute, 200, 620, 290, 50, "Ajouter  un nouveau spectacle  ")
      GadgetToolTip(#Button_ajoute, "Ajoute une prestation a la liste ")
      SetGadgetFont(#Button_ajoute, FontID2)
    
     Repeat 
        
        Event = WaitWindowEvent() 
        
        Select Event 
         
            
         Case #PB_EventMenu 
    Select EventMenuID() 
         Case#menu_Effacec :effacer()
 Case #menu_Annuler: Fermer_Window_1 = 1 

       EndSelect
 
                       
            
   Case #PB_EventGadget 
           
             
            GadgetID = EventGadgetID() 
              
 
 
            If GadgetID = #Button_Ajoute 
             
              item_add() 
               
              
             
              Fermer_Window_1 = 1 
                              
               
              EndIf

             
              EndSelect 

 
        
      Until Fermer_Window_1 = 1 
      
      CloseWindow(#Window_1) 
     While WindowEvent():Wend 
    EndIf
   
  EndIf 
EndProcedure 

Procedure Open_Window_2() 
  If OpenWindow(#window_2, 255, 7, 678, 724, #PB_Window_TitleBar | #PB_Window_BorderLess | #PB_Window_ScreenCentered, "Fiche du spectacle  ") 
    If CreateGadgetList(WindowID()) 
      Frame3DGadget(#Frame3D_ajoute, 10, 10, 660, 710, "") 
      TextGadget(#Text_NomS, 20, 40, 150, 30, "Nom du spectacle :", #PB_Text_Center) 
      SetGadgetFont(#Text_NomS, FontID2) 
      StringGadget(#String_NomS, 180, 40, 480, 28,"") 
      SetGadgetFont(#String_NomS, FontID3) 
      TextGadget(#Text_NomT, 20, 110, 150, 30, "Listes des tours : ", #PB_Text_Center) 
      SetGadgetFont(#Text_NomT, FontID2) 
      EditorGadget(#editor_NomT, 180, 110, 480, 100,"")
      SetGadgetFont(#editor_NomT, FontID3) 
      TextGadget(#Text_Matos, 20, 280, 130, 30, "Materiel : ", #PB_Text_Center) 
      SetGadgetFont(#Text_Matos, FontID2) 
      EditorGadget(#Editor_matos, 180, 280, 480, 130) 
      SetGadgetFont(#Editor_matos, FontID3) 
      TextGadget(#Text_date, 30, 460, 110, 30, "Date :", #PB_Text_Center) 
      SetGadgetFont(#Text_date, FontID2) 
      StringGadget(#String_date, 140, 460, 120, 30,"")  
      SetGadgetFont(#String_date, FontID3) 
      TextGadget(#Text_Heure, 360, 460, 110, 20, "Heure :", #PB_Text_Center) 
      SetGadgetFont(#Text_Heure, FontID2) 
      StringGadget(#String_heure, 480, 460, 130, 25,"")  
      SetGadgetFont(#String_heure, FontID3) 
      TextGadget(#Text_Lieux, 160, 520, 80, 20, "Lieux: ", #PB_Text_Center) 
      SetGadgetFont(#Text_Lieux, FontID2) 
      EditorGadget(#Editor_Lieux, 270, 510, 380, 80) 
      SetGadgetFont(#Editor_Lieux, FontID3) 
      
      
      ButtonGadget(#Button_ajoute, 200, 620, 290, 50, " Quitter la fiche   ") 
      SetGadgetFont(#Button_ajoute, FontID2) 
      
      ForEach Items() 
        If Items()\Nom = GetGadgetItemText(#ListIcon_0, Element, 0) 
          SetGadgetText(#String_NomS, Items()\Nom) 
          SetGadgetText(#Editor_Nomt, Items()\ListeT) 
          SetGadgetText(#Editor_matos, Items()\Matos) 
          SetGadgetText(#String_date, Items()\Date) 
          SetGadgetText(#String_heure, Items()\Heure) 
          SetGadgetText(#Editor_Lieux, Items()\Lieux) 
          Break 
        EndIf 
      Next 
      
      Repeat 
        
        Event = WaitWindowEvent() 
        
        Select Event 
          Case #PB_EventCloseWindow 
            Fermer_Window_2 = 1 
            
          Case #PB_EventGadget 
            GadgetID = EventGadgetID() 
            If GadgetID = #Button_ajoute 
              Fermer_Window_2 = 1 
            EndIf 
        EndSelect 
        
      Until Fermer_Window_2 = 1 
      
      CloseWindow(#window_2) 
    EndIf 
  EndIf 
EndProcedure 
      

Open_Window_0()
Repeat 
  
 Event = WaitWindowEvent() 
 Select Event 
  Case #PB_EventMenu 
      Select EventMenuID() 
              Case#menu_Charger:open (#false)
  Case#menu_save:saveas()

              
               Case #menu_Info:info()
               Case#menu_vider:Empty()
        Case#menu_Quitter :fermer_window_0=1     
           EndSelect


         Case #PB_EventGadget  
         Select EventGadgetID() 
                     

      Case #Button_ajoutet:open_window_1()
      Case#button_Fiche:i=0

If GetGadgetItemState(#ListIcon_0, i) & #PB_ListIcon_Checked
EndIf
Open_Window_2() 
      Case #Button_Effacee:RemoveGadget() 
      
      EndSelect 

Case #PB_EventCloseWindow 
      fermer_window_0= 1 
        
           
         
  EndSelect 
  
Until fermer_window_0= 1 


End 
merci

Williamm
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Dans la procedure Item_Load(fichier.s), tu lis bien les valeurs mais tu ne rempli pas la liste chainée avec les valeurs lues. Voir l'énumération dans la procedure Open()

ForEach Items() ...

Et lorsque tu ajoute une fiche, met un bouton pour quitter ce mode dans le cas ou on décide ne pas ajouter de fiche.
williamm
Messages : 54
Inscription : dim. 05/sept./2004 20:21

Message par williamm »

personne ne veux m'aider svp
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

en décommentant ceci

Code : Tout sélectionner

;Item_Add(Nom,ListeT,matos,Date,Heure,Lieux)
dans la procedure Load_item, non ? (j'ai pas testé mais tu lis les données sans les stocker dans la liste chainée)
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

William, je t'ai mis sur la voix.

Bon voici 2 procédures modifiés qui permettent de charger la liste et de l'afficher dans la Listicongadget


Avant de mettre les 2 procédures, il faut que tu comprenne ceci avec les fichiers préférences .


Tu sauve un fichier préférence avec la procédure Item_Save(fichier.s) et ça fonctionne

Code : Tout sélectionner

Procedure.l Item_Save(fichier.s)
  
  
  If CreatePreferences(fichier)
    
    ForEach Items()
      i + 1
      PreferenceGroup("Item." + Str(i))
      WritePreferenceString("Nom du spectacle", Items()\Nom)
      WritePreferenceString("Nom du spectacle", Items()\ListeT)
      WritePreferenceString("Materiel", Items()\Matos)
      WritePreferenceString("Date", Items()\Date)
      WritePreferenceString("Heure", Items()\heure)
      WritePreferenceString("Lieux", Items()\Lieux)
    Next
    
    ClosePreferences()
    ProcedureReturn i
    
  EndIf
  
EndProcedure

Mais tu charge le fichier préférences avec la procédure Item_Load(fichier.s)

Mais regarde bien ceci (de la procédure Item_Load ):

Nom.s = ReadPreferenceString("Nom du spectacle: ","")

La chaine utilisée en premier paramètre de la commande ReadPreferenceString doit être identique à celle utilisée dasn la procédure de sauvegarde avec la commande WritePreferenceString

Mais voici la ligne de sauvegarde :

Code : Tout sélectionner

WritePreferenceString("Nom du spectacle", Items()\Nom)
et voici la ligne de lecture :

Code : Tout sélectionner

Nom.s = ReadPreferenceString("Nom du spectacle: ","")
En lecture, tu as ajouté : après la chaine puis un espace. Ca ne peut pas aller.

Cette chaine est écrite dans le fichier et la commande de lecture ne trouve pas la chaine puisque elle est différente.

J'ai corrigé la procédure Item_Load pour ça et aussi pour ajouter un élément à la liste et je rempli la liste

Voici la procédure

Code : Tout sélectionner

Procedure.l Item_Load(fichier.s)
  
  If OpenPreferences(fichier)

    Repeat
      i + 1
      If PreferenceGroup("Item." + Str(i))
        AddElement(Items())
        Items()\Nom = ReadPreferenceString("Nom du spectacle", "")
        Items()\ListeT = ReadPreferenceString("Liste des tours", "")
        Items()\Matos = ReadPreferenceString("Materiel", "")
        Items()\Date = ReadPreferenceString("date", "")
        Items()\heure = ReadPreferenceString("Heure", "")
        Items()\Lieux = ReadPreferenceString("Lieux", "")
        
        ; Nom.s = ReadPreferenceString("Nom du spectacle: ","")
        ; ListeT.s  = ReadPreferenceString("Liste des tours: ","")
        ; Matos.s = ReadPreferenceString("Materiel:","")
        ; Date.s = ReadPreferenceString("date :","")
        ; Heure.s = ReadPreferenceString("Heure:","")
        ; Lieux.s = ReadPreferenceString("Lieux:","")
        
        ; Item_Add(Nom,ListeT,matos,Date,Heure,Lieux)
      Else
        Break
      EndIf
    ForEver
    
    ClosePreferences()
    ProcedureReturn i
    
  EndIf
  
EndProcedure
Mais si j'ouvre ton programme et que je commence par charger un fichier préférence ça ne marche pas car la procédure Open tente de modifier le texte de plusieurs stringGadegt qui ne sont pas encore créés.

En fait, ce qu'il faut faire c'est lorsque tu charge un fichier préférences, c'est d'effacer tous les éléments de la listicongadget qui sont affichés et ensuite d'afficher les nouvelles fiches dans cette listicon mais pas leur contenu puisque le contenu sera vu en sélectionnant la fiche pour l'ouvrir.

Voici la procédure Open

Code : Tout sélectionner

Procedure Open(append.b)
  
  
  ;- Ouvre un fichier
  ;-
  fichier.s = OpenFileRequester("Ouvrir", "fichier.ini", "ini | *.ini", 0)
  
  
  If fichier <> ""
    
    If append
      ClearGadgetItemList(#ListIcon_0)
    Else
      Item_Clear()
    EndIf
    
    Item_Load(fichier)
    ClearGadgetItemList(#listIcon_0)  ; on efface les éléments de la listicon
    ForEach Items()
       AddGadgetItem(#listIcon_0, -1, Items()\Nom)

;       Items()\Nom
;       line.s = Items()\Nom + Chr(10)
;       
;       SetGadgetText(#String_NomS, Items()\Nom)
;       SetGadgetText(#Editor_Nomt, Items()\ListeT)
;       SetGadgetText(#Editor_matos, Items()\Matos)
;       SetGadgetText(#String_date, Items()\Date)
;       SetGadgetText(#String_heure, Items()\Heure)
;       SetGadgetText(#Editor_Lieux, Items()\Lieux)
;       AddGadgetItem(#listIcon_0, -1, line)
      
      
      Break
      
      
    Next
    
    
  EndIf
  
EndProcedure

Ce que je n'ai pas fait c'est de supprimer tous les éléments de la liste chainée dans la procédure Item_load avant de lire le fichier (si l'ouverture réussie)

Bon, j'ai un peu de mal de m'y retrouver dans ton code et je n'ai pas testé autre chose.
Dernière modification par Anonyme2 le lun. 25/oct./2004 17:29, modifié 1 fois.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Denis a écrit :Bon, j'ai un peu de mal de m'y retrouver dans ton code et je n'ai pas testé autre chose.
T'est pas le seul :lol:
williamm
Messages : 54
Inscription : dim. 05/sept./2004 20:21

Message par williamm »

merci beaucoup denis

dis moi quel editeur utiliser :

japbe ou l'editeur par defaut de purebasic?



william
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

williamm a écrit :merci beaucoup denis

dis moi quel editeur utiliser :

japbe ou l'editeur par defaut de purebasic?



william
Moi j'ai rien contre JAPBE mais j'utilise celui de Pure, je préfère. C'est une question de goût perso. JAPBE a plus de fonctions peut-être ?
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

William,

pour trouver pourquoi un prog marche pas il faut y aller étape par étape.

J'ai lancé ton code et ca plante pas, ensuite j'ai créé une fiche et j'ai enregistré le fichier en quittant.

J'ai été voir sur mon disque si le fichier existait et ce qu'il contenait et ca semblait Ok

A partir de là, le problème vient soit de la lecture du fichier, soit de la sauvegarde des éléments lus soit de l'affichage ou bien une combinaison de ca.

J'ai mis des débug à chaque lecture du fichier et j'avais chaque fois une chaine vide et là j'ai compris le problème de la chaine qui n'était pas identique.

Je pratique comme ceci lorsque j'utilise un fichier préference.

Je declare les chaines en constantes comme ceci

Code : Tout sélectionner

#NomS = "Nom du spectacle"
#ListeT = "Liste des tours"
etc.

J'utilise ensuite ces constantes avec les commandes ReadPreferenceString et WritePreferenceString

Code : Tout sélectionner

Items()\Nom = ReadPreferenceString (#NomS, "")

WritePreferenceString(#NomS, Items()\Nom)
Ca évite de se tromper lorsque l'on réécrit la chaine.

Ensuite un coup de debug et la lecture des chaines c'est Ok.

Puis ca plante car le gadget n'est pas initialisé lorsque tu tente d'écrire le SetGadgetText(#String_NomS, Items()\Nom) dans la procedure Open; alors je regarde dans quelle procédure il est déclaré (TextGadget) et c'est dans la procédure Open_Window_1().

Je regarde ensuite ou elle est lancé et là elle n'est lancée que lorsque l'on clique sur un bouton

Code : Tout sélectionner

 Case #Button_ajoutet : open_window_1()
Donc ca ne peut pas fonctionner.
De toute façon, ce n'est pas la peine d'essayer d'afficher le contenu des fiches car ce qu'il faut c'est afficher dans la listIconGadget les noms des fiches lues dans le fichier préférence.

Tu sais, le debug ça marche très bien et je suis un gros consommateur :mrgreen:
Dernière modification par Anonyme2 le lun. 25/oct./2004 17:52, modifié 1 fois.
Répondre