probleme d'affichage

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

probleme d'affichage

Message par venom »

:D bonjour tout le monde .

voila mon probleme c'est que j'essaye de cree un programme qui ressemble a celui de williamm. pour moi cree une liste de film mais je n'arrive pas a enregistrer mes fichier quand je fait cree une nouvelle liste apres l'avoir cree je ne sait pas comment faire pour l'envoyer sur la page 1 je voais vous faire voir les codes vous comprendrer mieu car la c'est un peut charabia :D

voici le code de williamm

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 
  
  ; on teste ici si la liste est vide et si non, on active le bouton 
  If CountGadgetItems(#ListIcon_0) 
    DisableGadget(#Button_Fiche, 0) 
  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)) 
        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", "") 
      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) 
    ClearGadgetItemList(#listIcon_0) ; on efface les éléments de la listicon 
    ForEach Items() 
      AddGadgetItem(#listIcon_0, -1, Items()\Nom) 
      Items()\Nom 
    Next 
  EndIf 
  ; on teste ici si la liste est vide et si non, on active le bouton 
  If CountGadgetItems(#ListIcon_0) 
    DisableGadget(#Button_Fiche, 0) 
  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 
  ; comme la listicon est vide, on grise le bouton 
  If CountGadgetItems(#ListIcon_0) = 0 
    DisableGadget(#Button_Fiche, 1) 
  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) 
      
      ; ici on grise le bouton de lecture fiche 
      DisableGadget(#Button_Fiche, 1) 
      
      
      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(Index) 
  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) 
      
      ; comme l'index représente le même numéro que l'élément de la liste chaînée 
      ; il suffit de faire 
      
      SelectElement(Items(), Index) 
      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) 
      
      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 


;- - Debut du program principal 
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 CountGadgetItems(#ListIcon_0) 
            For i = 0 To CountGadgetItems(#ListIcon_0) 
              If GetGadgetItemState(#ListIcon_0, i) & #PB_ListIcon_Checked = #PB_ListIcon_Checked 
                Open_Window_2(i) 
                Break 
              EndIf 
            Next i 
          EndIf 
          
        Case #Button_Effacee 
          RemoveGadget() 
          
      EndSelect 
      
    Case #PB_EventCloseWindow 
      fermer_window_0 = 1 
      
  EndSelect 
  
Until fermer_window_0 = 1 

End
et voici le mien

Code : Tout sélectionner

Enumeration 
  #Window_0 
  #Window_1
  #Window_2
  #Window_3
EndEnumeration 

Enumeration
  #MenuBar_0  
  #menu_open
  #menu_Save
  #menu_charge 
  #menu_voir
  #menu_supprimer
  #menu_Quitter
  #Button_Default
  #menu_propos 
  #menu_merci
EndEnumeration

Enumeration 
  #Button_0
  #Button_1
  #Button_2
  #Button_3
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #String_NomA
  #String_NomB
  #String_NomC
  #String_NomD 
EndEnumeration

;open window0 

Procedure Open_Window_0() 
  If OpenWindow(#Window_0,0,0,800,600,  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_minimizegadget, "LISTE DE FILM") 
    If CreateMenu(#MenuBar_0, WindowID()) 
        MenuTitle( "fichier") 
      
       MenuItem(#menu_open, "cree une nouvelle fiche") 
       MenuItem(#menu_Save, "sauvegarder la liste")
       MenuItem(#menu_charge, "charger une liste") 
       MenuItem(#menu_Quitter, "quitter") 
      
       MenuTitle( "option") 
      
       MenuItem(#menu_voir, "voir la fiche du fichier cocher")  
       MenuItem(#menu_supprimer, "supprimer le film cocher")
       
       MenuTitle( "information")
       
       MenuItem(#menu_propos, "a propos de")
       MenuItem(#menu_merci, "remerciment")
           
EndIf
  
;barre de gadget
    
     If CreateGadgetList(WindowID()) 
      
      ListIconGadget(#Window_0, 10, 15, 778, 552, "TITRE DU FILM ", 774, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines | #PB_Explorer_AutoSort) 
      
EndIf 
EndIf 
EndProcedure 

;open window1

Procedure Open_Window_1() 
  If OpenWindow(#Window_1, 0,0,800,600,  #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered  , "AJOUT D'UNE NOUVELLE LISTE") 
    If CreateGadgetList(WindowID()) 
      ButtonGadget(#Button_0, 60, 510, 300, 70, "AJOUTER A LA LISTE")
      ButtonGadget(#Button_1, 430, 510, 300, 70, "ANNULER LA FICHE")
       
      TextGadget(#Text_0, 10, 50, 100, 50, "TITRE :", #PB_Text_Center)
      StringGadget(#String_NomA, 180, 40, 480, 28, "")
      
      TextGadget(#Text_1, 10, 150, 100, 50, "COMMENTAIRE :", #PB_Text_Center)
      StringGadget(#String_NomB, 180, 150, 480, 70, "")
    
      TextGadget(#Text_2, 10, 300, 150, 50, "NOTE DE L'IMAGE /20 :", #PB_Text_Center)
      StringGadget(#String_NomC, 180, 300, 50, 28, "")

      TextGadget(#Text_3, 10, 400, 130, 50, "NOTE DU SON /20 :", #PB_Text_Center)
      StringGadget(#String_NomD, 180, 400, 50, 28, "")
 
EndIf
EndIf 
EndProcedure

;texte a propos de.

Procedure Open_Window_2() 
  If OpenWindow(#Window_2,0,0,200,200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "a propos de") And CreateGadgetList(WindowID(#Window_2))  
  TextGadget(1, 10, 10,180,100,"                 LISTE DE FILM :           liste de film a ete concu pour que vous puissiez mieu vous y retrouver car il peut vous donner tout de suite en un clic le commentaire de votre film, la note d'image et de son que vous lui aurer attribuer.")
  ButtonGadget(2,10,160,180,30,"ok", #Button_2)
  
EndIf
EndProcedure  
  
;texte de remerciment.  

Procedure Open_Window_3() 
  If OpenWindow(#Window_3,0,0,200,200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "REMERCIMENT") And CreateGadgetList(WindowID(#Window_3))  
  TextGadget(1, 10, 10,180,100," remerciment a venom qui a cree ce logiciel tres utiles et tres bien fait   :- )")   
  ButtonGadget(2,10,160,180,30,"ok", #Button_3)
                              
EndIf
EndProcedure
  

Open_Window_0() 

Repeat 
Event = WaitWindowEvent()
  
 ;boutton ouvrir.
  
   If Event = #PB_EventMenu             
    MenuID = EventMenuID() 
    
    If MenuID = #menu_open 
   Open_Window_1() 
EndIf     
EndIf

;boutton sauvegarder.

If Event = #PB_Eventmenu             
    MenuID = EventMenuID() 
    
    If MenuID = #menu_save 
   fichier.s = SaveFileRequester("Enregistrer sous", "liste de film", "txt | txt", 0) 
If fichier <> "" 
 EndIf 
EndIf     
EndIf

;boutton charger.

If Event = #PB_EventMenu             
    MenuID = EventMenuID() 
    
    If MenuID = #menu_charge 
   NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "*.txt|", 0) 
EndIf     
EndIf

;boutton a propos de.
 
 If Event = #PB_EventMenu             
    MenuID = EventMenuID() 
    
    If MenuID = #menu_propos 
   Open_Window_2() 
EndIf     
EndIf

;boutton remerciment.

 If Event = #PB_EventMenu             
    MenuID = EventMenuID() 
    
    If MenuID = #menu_merci 
   Open_Window_3() 
EndIf     
EndIf

;boutton ok a information.

 If Event = #PB_Eventgadget             
    MenuID = EventMenuID() 
    
    If MenuID = #button_2 
    Open_Window_0() 
EndIf     
EndIf

;boutton quitter window_2.

 If Event = #PB_Eventgadget             
    MenuID = EventMenuID() 
    
    If MenuID = #Button_1 
   open_window_0()
EndIf     
EndIf


;boutton quitter.

 If Event = #PB_EventMenu             
    MenuID = EventMenuID() 
    
    If MenuID = #menu_quitter 
   Break 
EndIf     
EndIf

;ferme windows.
   
Until Event = #PB_EventCloseWindow 

End
voila j'ai beau lire et relire le code de williamm je ne trouve pas comment metre ma liste cree dans la fenetre, "open_window_0"
donc voila je ne sait pas si vous comprendre ce que j'essaye d'espliquer car vous aites pas dans ma tete mais bon si vous comprener pas dites le moi je m'exprimerer mieu :D
Avatar de l’utilisateur
Crystal Noir
Messages : 892
Inscription : mar. 27/janv./2004 10:07

Message par Crystal Noir »

oui si tu pouvais en dire un peu plus car je voudrais bien t'aider mais c pas très clair pour moi :(
Avatar de l’utilisateur
venom
Messages : 3137
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bin en faite quand tu teste le code de williamm tu fait cree un nouveau spectacle et des que tu la cree sa se met dans la liste ou tu pe le cocher et moi j'arrive pas a faire pour le metre dans la liste quand je cree une nouvelle liste a tu mieu compri je sai j'ai du mal a espliquer ce que je veux dire :? :mad: j'esper que tu comprendra mieu essaye le code de williamm et apres le mien tu verra surement ou je suis bloquer par rapport a lui :wink:
voila merci de vouloir m'aider meme si mes question sont pas tres claire :cry: :? :idea: :D
jbernard13
Messages : 1501
Inscription : dim. 18/avr./2004 15:04
Localisation : sud de la france

Message par jbernard13 »

essaye de t'expliquer clairement svp

peux la reponse a ta question est ici :

Code : Tout sélectionner


; 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 
Jbernard13
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Hou Venon,

avant de te lancer dans une application longue, commence par lire les tutos du forum, les fenêtre, les listes chainées etc.

Voilà mes remarques.

Je n'utilise jamais visual designer mais je pense que l'on peut donner autre chose que Window_0 comme identifiant d'une fenêtre car le programme devient très vite illisible

Renomme tous les identifiants des fenêtres, gadgets etc avec des noms qui évoquent ce que fait la fenêtre, le gadget etc.

J'ai repris ton code (en partie).

Une très grosse erreur que tu as fait :

Il y a 3 enumeration

Si on ne précise pas, chaque enumeration commence à 0. L'identifiant de la Listicongadget doit être écrasé quelque part, à un moment dans le programme, la listicongadget disparaissait et ça plantait.

Je conseille simplement de mettre toutes les déclarations dans la même enumeration, comme celà on est sur qu'aucun élément n'aura le même numéro.

Deuxième point :

Chaque procédure qui construit une fenêtre doit avoir sa boucle d'événement pou gérer ses propres bouton etc et si la condition pour fermer la fenêtre est remplie, il faut fermer la fenêtre avec la commande closeWindow()

Maintenant pour afficher le nom de la fiche, j'ai créé une structure fiche avec des champs pouvant être remplis avec les éléments de chaque fiche.
Pour sauvegarder les fiches, j'ai créé une une liste chainée auquelle j'ajoute un élément à chaque fois que je cré une fiche.

Maintenant il te reste à modifier la procédure Fenetre_Remerciement() pour y mettre sa propre boucle d'événement et ne pas oublier de la fermer en quittant cette procedure (voir la procedure Fenetre_A_Propos_De() ou Ajoute_Fiche()

Mais tu dois absolument comprendre comment gérer les événements d'une fenêtre et comment fonctionne une liste chainée si tu veux aller plus loin.


Voilà le code en partie remanié

Et s'il te plait, parle de manière compréhensible (même s'il y a des fautes d'orthographe) ; c'est surement la dernière fois que je répond à un message difficilement compréhensible. Ca prend du temps de regarder le code d'une autre codeur mais en plus si on comprend pas bien le problème ...


Code : Tout sélectionner

Enumeration
   #Fenetre_Principale
   #ListIcon
   #Fenetre_Creation_Fiche
   #Window_A_Propos_De
   #Window_3
   
   #MenuBar_0
   #menu_Creation_Fiche
   #menu_Save
   #menu_charge
   #menu_voir
   #menu_supprimer
   #menu_Quitter
   #Button_Default
   #menu_propos
   #menu_merci
   
   #Button_Ajouter_Fiche
   #Bouton_Annuler_Fiche
   #button_Quitter_A_Propos_De
   #Button_3
   #Text_Titre
   #Text_Commentaire
   #Text_Note_Image
   #Text_Note_Son
   #Titre_Fiche
   #Commentaire_Fiche
   #Note_Image_Fiche
   #Note_Son_Fiche
   #TextGadget_APropos_De
EndEnumeration

Structure Fiche ; pour stocker les éléments d'une fiche avec une variable
   Titre.s
   Commentaire.s
   NoteImage.s
   NoteSon.s
EndStructure

; création d'une liste chainée pouvant stocker les informations des fiches
NewList FicheCourante.Fiche()

Procedure Ajoute_Fiche()
   ; ici on ajoute une fiche à la liste chainée et on affiche le nom dans la liste icongadget
   AddElement(FicheCourante()) ; on indique à la liste chainée de créer de la place en mémoire
   ; pour stocker les éléments de la fiche
   
   ; On remplit les éléments de la fiche nouvellement créée stockée dans la liste chainée
   FicheCourante()\Titre = GetGadgetText(#Titre_Fiche)
   FicheCourante()\Commentaire = GetGadgetText(#Commentaire_Fiche)
   FicheCourante()\NoteImage = GetGadgetText(#Note_Image_Fiche)
   FicheCourante()\NoteSon = GetGadgetText(#Note_Son_Fiche)
EndProcedure

Procedure Creation_Fiche()
   HideWindow(#Fenetre_Principale, 1)
   If OpenWindow(#Fenetre_Creation_Fiche, 0, 0, 800, 600, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "AJOUT D'UNE NOUVELLE FICHE")
      If CreateGadgetList(WindowID(#Fenetre_Creation_Fiche))
         ButtonGadget(#Button_Ajouter_Fiche, 60, 510, 300, 70, "AJOUTER A LA LISTE")
         ButtonGadget(#Bouton_Annuler_Fiche, 430, 510, 300, 70, "ANNULER LA FICHE")
         
         TextGadget(#Text_Titre, 10, 50, 100, 50, "TITRE :", #PB_Text_Center)
         StringGadget(#Titre_Fiche, 180, 40, 480, 28, "")
         
         TextGadget(#Text_Commentaire, 10, 150, 100, 50, "COMMENTAIRE :", #PB_Text_Center)
         StringGadget(#Commentaire_Fiche, 180, 150, 480, 70, "")
         
         TextGadget(#Text_Note_Image, 10, 300, 150, 50, "NOTE DE L'IMAGE /20 :", #PB_Text_Center)
         StringGadget(#Note_Image_Fiche, 180, 300, 50, 28, "")
         
         TextGadget(#Text_Note_Son, 10, 400, 130, 50, "NOTE DU SON /20 :", #PB_Text_Center)
         StringGadget(#Note_Son_Fiche, 180, 400, 50, 28, "")
         
         quitter_Fiche = 0
         Repeat
            Select WaitWindowEvent()
                  
               Case #PB_Eventgadget ; pour les bouton etc sauf les menus
                  EventID = EventGadgetID() ; ici l'événement vient d'un bouton et pas d'un menu
                  
                  If EventID = #Bouton_Annuler_Fiche
                     quitter_Fiche = 1
                     ; Fenetre_Principale()
                     
                  ElseIf EventID = #Button_Ajouter_Fiche
                     Ajoute_Fiche()
                     ; CloseWindow(#Fenetre_Creation_Fiche)
                     ; Fenetre_Principale()
                     quitter_Fiche = 1
                  EndIf
                  ; ferme windows.
                  
               Case #PB_EventCloseWindow
                  quitter_Fiche = 1
            EndSelect
            
         Until quitter_Fiche = 1
         CloseWindow(#Fenetre_Creation_Fiche)
      EndIf
   EndIf
   HideWindow(#Fenetre_Principale, 0)
   AddGadgetItem(#ListIcon, -1, FicheCourante()\Titre) ; on affiche le titre
EndProcedure


Procedure Fenetre_A_Propos_De()
   If OpenWindow(#Window_A_Propos_De, 0, 0, 200, 200, #PB_Window_ScreenCentered, "A propos de") And CreateGadgetList(WindowID(#Window_A_Propos_De))
      If CreateGadgetList(WindowID())
         TextGadget(#TextGadget_APropos_De, 10, 10, 180, 100, "                 LISTE DE FILM :           liste de film a ete concu pour que vous puissiez mieu vous y retrouver car il peut vous donner tout de suite en un clic le commentaire de votre film, la note d'image et de son que vous lui aurer attribuer.")
         ButtonGadget(#button_Quitter_A_Propos_De, 10, 160, 180, 30, "Ok", #button_Quitter_A_Propos_De)
         
         quitter_Apropos_De = 0
         Repeat
            Select WaitWindowEvent()
                  
               Case #PB_Eventgadget
                  EventID = EventGadgetID() ; ici l'événement vient d'un bouton et pas d'un menu
                  If EventID = #button_Quitter_A_Propos_De
                     quitter_Apropos_De = 1
                  EndIf
            EndSelect
         Until quitter_Apropos_De = 1
         CloseWindow(#Window_A_Propos_De)
      EndIf
   EndIf
EndProcedure


Procedure Fenetre_Remerciement()
   If OpenWindow(#Window_3, 0, 0, 200, 200, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "REMERCIMENT") And CreateGadgetList(WindowID(#Window_3))
      TextGadget(1, 10, 10, 180, 100, " remerciment a venom qui a cree ce logiciel tres utiles et tres bien fait   :- )")
      ButtonGadget(2, 10, 160, 180, 30, "ok", #Button_3)
   EndIf

EndProcedure


;- Debut programme principal

If OpenWindow(#Fenetre_Principale, 0, 0, 800, 600, #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_minimizegadget, "LISTE DE FILM")
   If CreateGadgetList(WindowID()) And CreateMenu(#MenuBar_0, WindowID())
      MenuTitle( "fichier")
      
      MenuItem(#menu_Creation_Fiche, "cree une nouvelle fiche")
      MenuItem(#menu_Save, "sauvegarder la liste")
      MenuItem(#menu_charge, "charger une liste")
      MenuItem(#menu_Quitter, "quitter")
      
      MenuTitle( "option")
      
      MenuItem(#menu_voir, "voir la fiche du fichier cocher")
      MenuItem(#menu_supprimer, "supprimer le film cocher")
      
      MenuTitle( "information")
      
      MenuItem(#menu_propos, "a propos de")
      MenuItem(#menu_merci, "remerciment")
      
      ListIconGadget(#ListIcon, 10, 15, 778, 552, "TITRE DU FILM ", 774, #PB_ListIcon_CheckBoxes | #PB_ListIcon_GridLines)
      ; AddGadgetItem(#ListIcon, -1, " ") ; on affiche le titre
      
      ;- Debut boucle evenements
      Repeat
         Event = WaitWindowEvent()
         
         ; boutton ouvrir.
         
         If Event = #PB_EventMenu
            MenuID = EventMenuID()
            
            If MenuID = #menu_Creation_Fiche
               Creation_Fiche()
               ; AddGadgetItem(#ListIcon, -1, FicheCourante()\Titre) ; on affiche le titre
               
               ; boutton sauvegarder.
               
            ElseIf MenuID = #menu_save
               fichier.s = SaveFileRequester("Enregistrer sous", "liste de film", "txt | txt", 0)
               If fichier <> ""
               EndIf
               
               ; boutton charger.
               
            ElseIf MenuID = #menu_charge
               NomFichier$ = OpenFileRequester("Titre", "::{450d8fba-ad25-11d0-98a8-0800361b1103}\", "*.txt|", 0)
               
               ; boutton a propos de.
               
            ElseIf MenuID = #menu_propos
               Fenetre_A_Propos_De()
               
               ; boutton remerciment.
               
            ElseIf MenuID = #menu_merci
               Fenetre_Remerciement()
               
               ; boutton quitter.
               
            ElseIf MenuID = #menu_quitter
               quit = 1
            EndIf
            
         ElseIf Event = #PB_EventCloseWindow ; And EventWindowID() = WindowID(#Fenetre_Principale)
            quit = 1
         EndIf
      Until quit = 1
      
   EndIf
EndIf
End
Répondre