Page 1 sur 1

[Résolu] Pourquoi ça ne sauvegarde pas ?

Publié : jeu. 31/mars/2016 18:11
par Micoute
Bonsoir à tous,

je souhaite faire un logiciel pour prendre des rendez-vous, car je fréquente beaucoup le corps médical et j'aimerais savoir pourquoi, il ne sauvegarde pas alors qu'il est sensé le faire à la fermeture du programme.

Code : Tout sélectionner

;Planning Json.pb

EnableExplicit
;{- Enumérations / DataSections
Enumeration Fenetres
  #Fenetre_principale
  #Base_de_donnees
EndEnumeration

Enumeration Gadgets
  #LstIcn
  #Dte_Quand
  #Txt_Qui
  #Txt_AvecQui
  #Txt_Ville
  #Txt_Heure
  #Txt_Duree
  #Txt_Note
  #Str_Qui
  #Str_AvecQui
  #Str_Ville
  #Str_Heure
  #Str_Duree
  #Edt_Note
  #Btn_Nouveau
  #Btn_Enregistrer
  #Btn_Supprimer
  #Btn_Selectionner
  #Btn_Quitter
  #Ctn
EndEnumeration
;}
Structure DB
  Quand.s
  Qui.s
  Avec_Qui.s
  Ou.s
  Heure.s
  Duree.s
  Note.s
EndStructure

Global NewList MaBase.DB()
Global Evenement, EvenementFenetre, EvenementGadget, TypeEvenement, EvenementMenu

;Application 
#TitreApplication = "Planning par Micoute"

;Base de données
#Fichier_de_donnees = "D:\Programmation\Donnees\Planning.Json"

; Déclaration des variables
Global.s Date_Quand, Qui, AvecQui, Ville, Heure, Duree, Note
Global Texte$, Couleur, Couleur2, Couleur3, Resultat, ElemGadget

Declare Event_SizeWindow()
Declare ChargerRDV()
Declare NouveauRDV()
Declare SelectionnerRDV()
Declare SupprimerRDV()
Declare Mise_a_jour_RDV()
Declare ModifierEnregistrement()
Declare SauvegardeRDV()
Declare Ouvrir_Fenetre_principale()

Procedure Event_SizeWindow()
  ResizeGadget(#LstIcn, #PB_Ignore, #PB_Ignore, WindowWidth(#Fenetre_principale) - 20, WindowHeight(#Fenetre_principale) - 305)
  ResizeGadget(#Ctn, #PB_Ignore, GadgetY(#LstIcn) + GadgetHeight(#LstIcn), WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale) - 20)
  ResizeGadget(#Str_Qui, 80, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui,0, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui, 80, 45, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Str_Ville, 80, 75, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 100, 40)
  
  ResizeGadget(#Btn_Enregistrer, (GadgetWidth(#Ctn) * 0.3)-15, 225, 60, 20)
  ResizeGadget(#Btn_Supprimer, (GadgetWidth(#Ctn) * 0.5)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Selectionner, (GadgetWidth(#Ctn) * 0.7)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Quitter, GadgetWidth(#Ctn) - 60, 225, 40, 20)
EndProcedure

;Ouverture de la base de données 
Procedure ChargerRDV()  
  If ReadFile(#Base_de_donnees, #Fichier_de_donnees)
    CloseFile(#Base_de_donnees)
    
    ;Analyser les données JSON à partir d'un fichier
    LoadJSON(#Base_de_donnees, #Fichier_de_donnees)
    
    ;Extraire les éléments dans la liste spécifiée
    ExtractJSONList(JSONValue(#Base_de_donnees), MaBase())
    
    ;Affichage de la liste des Renvez-vous
    ForEach MaBase()
      With MaBase()
        AddGadgetItem(#LstIcn, -1, \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
        SetGadgetItemData(#LstIcn, CountGadgetItems(#LstIcn) - 1, ListIndex(MaBase()))
      EndWith
    Next
  EndIf
EndProcedure

;Mise en place d'un nouvel enregistrement
Procedure NouveauRDV()
  SetWindowData(#Fenetre_principale, 0) ;C'est une création
  SetGadgetState(#Dte_Quand, Date())
  SetGadgetText(#Str_Qui, "")
  SetGadgetText(#Str_AvecQui, "")
  SetGadgetText(#Str_Ville, "")
  SetGadgetText(#Str_Heure, "")
  SetGadgetText(#Str_Duree, "")
  SetGadgetText(#Edt_Note, "")
EndProcedure

Procedure SelectionnerRDV()
  Protected Element = GetGadgetState(#LstIcn)  
  
  If Element <> -1
    SelectElement(MaBase(), GetGadgetItemData(#LstIcn, Element))
    With MaBase()
      SetGadgetText(#Dte_Quand, \Quand)
      SetGadgetText(#Str_Qui, \Qui)        
      SetGadgetText(#Str_AvecQui, \Avec_Qui)
      SetGadgetText(#Str_Ville, \Ou)
      SetGadgetText(#Str_Heure, \Heure)
      SetGadgetText(#Str_Duree, \Duree)
      SetGadgetText(#Edt_Note, \Note)
    EndWith
  EndIf  
  
  ;C'est une modification de RDV
  SetWindowData(#Fenetre_principale, 1)
EndProcedure

;Suppression d'un enregistrement
Procedure SupprimerRDV()
  If MessageRequester("Information", "Etes-vous certain de vouloir supprimer ce RDV ?", #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
    SetWindowData(#Fenetre_principale, 3) ;C'est une suppression
    Mise_a_jour_RDV()
  EndIf 
EndProcedure

;Mise à jour des rendez-vous
Procedure Mise_a_jour_RDV()
  Date_Quand = Str(GetGadgetState(#Dte_Quand))
  Qui = GetGadgetText(#Str_Qui)
  AvecQui = GetGadgetText(#Str_AvecQui)
  Ville = GetGadgetText(#Str_Ville)
  Heure = GetGadgetText(#Str_Heure)
  Duree = GetGadgetText(#Str_Duree)
  Note = GetGadgetText(#Edt_Note)
  
  Select GetWindowData(#Fenetre_principale)
    Case 0 ;Création d'un RDV
      AddElement(MaBase())
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
      
    Case 1 ;Modification d'un contact
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
      NouveauRDV()
      
    Case 3 ;Suppression d'un RDV
      RemoveGadgetItem(#LstIcn, ListIndex(MaBase()))
      DeleteElement(MaBase())
      
      ;Mise à jour des index ListIcon <-> MaBase()
      ForEach MaBase()
        SetGadgetItemData(#LstIcn, ListIndex(MaBase()), ListIndex(MaBase()))
      Next
      
  EndSelect  
EndProcedure

;Sauvegarde des rendez-vous à la fermeture de l'application
Procedure SauvegardeRDV()
  ;Création d'un fichier JSON
  CreateJSON(#Base_de_donnees)
  
  ;Insertion de la liste chaînée "MaBase" dans le fichier JSON
  InsertJSONList(JSONValue(#Base_de_donnees), MaBase())
  
  ;Sauvegarde du fichier
  SaveJSON(#Base_de_donnees, #Fichier_de_donnees)
EndProcedure  

Procedure Ouvrir_Fenetre_principale()
  If OpenWindow(#Fenetre_principale, 0, 0, 500, 560, #TitreApplication + " © 31 mars 2016", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    ListIconGadget(#LstIcn, 10, 40, 475, 255, "Quand", 80, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#LstIcn, 1, "Qui", 100)
    AddGadgetColumn(#LstIcn, 2, "Avec qui", 100)
    AddGadgetColumn(#LstIcn, 3, "Où", 100)
    AddGadgetColumn(#LstIcn, 4, "Heure", 45)
    AddGadgetColumn(#LstIcn, 5, "Durée", 45)
    AddGadgetColumn(#LstIcn, 6, "Note", 350)
    DateGadget(#Dte_Quand, 10, 10, 80, 20, "%dd/%mm/%yyyy", Date())
    ContainerGadget(#Ctn, 10, 300, 480, 245)
    TextGadget(#Txt_Qui, 0, 10, 20, 20, "Qui:", #PB_Text_Right)
    TextGadget(#Txt_AvecQui, 0, 50, 50, 20, "Avec qui:", #PB_Text_Right)
    TextGadget(#Txt_Ville, 0, 80, 75, 20, "Endroit ou Ville", #PB_Text_Right)
    TextGadget(#Txt_Heure, 0, 115, 35, 20, "Heure:", #PB_Text_Right)
    TextGadget(#Txt_Duree, 0, 145, 35, 20, "Durée:", #PB_Text_Right)
    TextGadget(#Txt_Note, 0, 185, 30, 20, "Note:", #PB_Text_Right)
    StringGadget(#Str_Qui, 80, 10, 395, 20, "")
    StringGadget(#Str_AvecQui, 80, 45, 395, 20, "")
    StringGadget(#Str_Ville, 80, 75, 396, 20, "")
    StringGadget(#Str_Heure, 80, 110, 35, 20, "")
    StringGadget(#Str_Duree, 80, 140, 35, 20, "")
    EditorGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 85, 40)  ;395, 40)
    ButtonGadget(#Btn_Nouveau, 0, 225, 50, 20, "Nouveau")
    ButtonGadget(#Btn_Enregistrer, 100, 225, 60, 20, "Enregistrer")
    ButtonGadget(#Btn_Supprimer, 220, 225, 55, 20, "Supprimer")
    ButtonGadget(#Btn_Selectionner, 321, 225, 63, 20, "Sélectionner")
    ButtonGadget(#Btn_Quitter, 435, 225, 40, 20, "Quitter")
    CloseGadgetList()
    
    Couleur = $EAFAEA
    SetWindowColor(#Fenetre_principale, Couleur)
    
    SetGadgetColor(#Txt_Qui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_AvecQui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Ville, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Heure, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Duree, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Note, #PB_Gadget_BackColor, Couleur)
    
    couleur2 = $EAEAFA
    SetGadgetColor(#Str_Qui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_AvecQui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Ville, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Heure, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Duree, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Edt_Note, #PB_Gadget_BackColor, couleur2)
    
    couleur3 = $FAEAEA
    SetGadgetColor(#LstIcn, #PB_Gadget_BackColor, couleur3)
    
    BindEvent( #PB_Event_SizeWindow, @Event_SizeWindow() )
  EndIf
EndProcedure

;Lancer la procédure principale  
Ouvrir_Fenetre_principale()

;Ouverture de la base de données 
ChargerRDV()

;{- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
  Select Evenement
      ; ///////////////////
    Case #PB_Event_Gadget
      EvenementGadget = EventGadget()
      TypeEvenement = EventType()
      If EvenementGadget = #LstIcn
        ;        VoirEnregistrement()
      ElseIf EvenementGadget = #Btn_Nouveau ;Nouveau Rdv
        NouveauRDV()
      ElseIf EvenementGadget = #Btn_Enregistrer ;Ajout ou modification d'un Rdv
        Mise_a_jour_RDV()          
      ElseIf EvenementGadget = #Btn_Supprimer ; Suppression d'un Rdv
        SupprimerRDV()
      ElseIf EvenementGadget = #Btn_Selectionner
        SelectionnerRDV()
      ElseIf EvenementGadget = #Btn_Quitter
        CloseWindow(#Fenetre_principale)
        Break
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EvenementFenetre = EventWindow()
      If EvenementFenetre = #Fenetre_principale
        CloseWindow(#Fenetre_principale)
        SauvegardeRDV()
        Break
      EndIf
  EndSelect
ForEver
;}

Re: Pourquoi ça ne sauvegarde pas ?

Publié : jeu. 31/mars/2016 18:57
par Jacobus
Essaye comme ça
- j'ai modifié les Enumerations
- Mis ton nom de fichier en variable plutôt qu'en constante
- Replacer une sauvegarde quand tu fermes ta fenêtre par le bouton
- Récupéré la date de "quand" avec un getagdgettext()
- Tu devrais remplacer ton AddGadgetItem() dans tes modifications par un SetGadgetItemText()
ça doit être à peu près tout...

Code : Tout sélectionner

;Planning Json.pb

EnableExplicit
;{- Enumérations / DataSections
Enumeration Fenetres
  #Fenetre_principale
  ;#Base_de_donnees
EndEnumeration
Enumeration
  #Base_de_donnees
EndEnumeration


Enumeration Gadgets
  #LstIcn
  #Dte_Quand
  #Txt_Qui
  #Txt_AvecQui
  #Txt_Ville
  #Txt_Heure
  #Txt_Duree
  #Txt_Note
  #Str_Qui
  #Str_AvecQui
  #Str_Ville
  #Str_Heure
  #Str_Duree
  #Edt_Note
  #Btn_Nouveau
  #Btn_Enregistrer
  #Btn_Supprimer
  #Btn_Selectionner
  #Btn_Quitter
  #Ctn
EndEnumeration
;}
Structure DB
  Quand.s
  Qui.s
  Avec_Qui.s
  Ou.s
  Heure.s
  Duree.s
  Note.s
EndStructure

Global NewList MaBase.DB()
Global Evenement, EvenementFenetre, EvenementGadget, TypeEvenement, EvenementMenu, Fichier_de_donnees$

;Application
#TitreApplication = "Planning par Micoute"

;Base de données
Fichier_de_donnees$ = "Planning.Json"

; Déclaration des variables
Global.s Date_Quand, Qui, AvecQui, Ville, Heure, Duree, Note
Global Texte$, Couleur, Couleur2, Couleur3, Resultat, ElemGadget

Declare Event_SizeWindow()
Declare ChargerRDV()
Declare NouveauRDV()
Declare SelectionnerRDV()
Declare SupprimerRDV()
Declare Mise_a_jour_RDV()
Declare ModifierEnregistrement()
Declare SauvegardeRDV()
Declare Ouvrir_Fenetre_principale()

Procedure Event_SizeWindow()
  ResizeGadget(#LstIcn, #PB_Ignore, #PB_Ignore, WindowWidth(#Fenetre_principale) - 20, WindowHeight(#Fenetre_principale) - 305)
  ResizeGadget(#Ctn, #PB_Ignore, GadgetY(#LstIcn) + GadgetHeight(#LstIcn), WindowWidth(#Fenetre_principale), WindowHeight(#Fenetre_principale) - 20)
  ResizeGadget(#Str_Qui, 80, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui,0, 10, GadgetWidth(#Ctn) -100, 20)
  ResizeGadget(#Str_AvecQui, 80, 45, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Str_Ville, 80, 75, GadgetWidth(#Ctn) - 100, 20)
  ResizeGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 100, 40)
 
  ResizeGadget(#Btn_Enregistrer, (GadgetWidth(#Ctn) * 0.3)-15, 225, 60, 20)
  ResizeGadget(#Btn_Supprimer, (GadgetWidth(#Ctn) * 0.5)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Selectionner, (GadgetWidth(#Ctn) * 0.7)-15 , 225, 60, 20)
  ResizeGadget(#Btn_Quitter, GadgetWidth(#Ctn) - 60, 225, 40, 20)
EndProcedure

;Ouverture de la base de données
Procedure ChargerRDV() 
  If ReadFile(#Base_de_donnees, Fichier_de_donnees$)
    CloseFile(#Base_de_donnees)
   
    ;Analyser les données JSON à partir d'un fichier
    LoadJSON(#Base_de_donnees, Fichier_de_donnees$)
   
    ;Extraire les éléments dans la liste spécifiée
    ExtractJSONList(JSONValue(#Base_de_donnees), MaBase())
   
    ;Affichage de la liste des Renvez-vous
    ForEach MaBase()
      With MaBase()
        AddGadgetItem(#LstIcn, -1, \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
        SetGadgetItemData(#LstIcn, CountGadgetItems(#LstIcn) - 1, ListIndex(MaBase()))
      EndWith
    Next
  EndIf
EndProcedure

;Mise en place d'un nouvel enregistrement
Procedure NouveauRDV()
  SetWindowData(#Fenetre_principale, 0) ;C'est une création
  SetGadgetState(#Dte_Quand, Date())
  SetGadgetText(#Str_Qui, "")
  SetGadgetText(#Str_AvecQui, "")
  SetGadgetText(#Str_Ville, "")
  SetGadgetText(#Str_Heure, "")
  SetGadgetText(#Str_Duree, "")
  SetGadgetText(#Edt_Note, "")
EndProcedure

Procedure SelectionnerRDV()
  Protected Element = GetGadgetState(#LstIcn) 
 
  If Element <> -1
    SelectElement(MaBase(), GetGadgetItemData(#LstIcn, Element))
    With MaBase()
      SetGadgetText(#Dte_Quand, \Quand)
      SetGadgetText(#Str_Qui, \Qui)       
      SetGadgetText(#Str_AvecQui, \Avec_Qui)
      SetGadgetText(#Str_Ville, \Ou)
      SetGadgetText(#Str_Heure, \Heure)
      SetGadgetText(#Str_Duree, \Duree)
      SetGadgetText(#Edt_Note, \Note)
    EndWith
  EndIf 
 
  ;C'est une modification de RDV
  SetWindowData(#Fenetre_principale, 1)
EndProcedure

;Suppression d'un enregistrement
Procedure SupprimerRDV()
  If MessageRequester("Information", "Etes-vous certain de vouloir supprimer ce RDV ?", #PB_MessageRequester_YesNo) = #PB_MessageRequester_Yes
    SetWindowData(#Fenetre_principale, 3) ;C'est une suppression
    Mise_a_jour_RDV()
  EndIf
EndProcedure

;Mise à jour des rendez-vous
Procedure Mise_a_jour_RDV()
  ;Date_Quand = Str(GetGadgetState(#Dte_Quand))
  Date_Quand = GetGadgetText(#Dte_Quand)
  Qui = GetGadgetText(#Str_Qui)
  AvecQui = GetGadgetText(#Str_AvecQui)
  Ville = GetGadgetText(#Str_Ville)
  Heure = GetGadgetText(#Str_Heure)
  Duree = GetGadgetText(#Str_Duree)
  Note = GetGadgetText(#Edt_Note)
 
  Select GetWindowData(#Fenetre_principale)
    Case 0 ;Création d'un RDV
      AddElement(MaBase())
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
     
    Case 1 ;Modification d'un contact
      With MaBase()
        \Quand = Date_Quand
        \Qui = qui
        \Avec_Qui = AvecQui
        \Ou = Ville
        \Heure = Heure
        \Duree = Duree
        \Note = Note
        AddGadgetItem(#LstIcn, ListIndex(MaBase()), \Quand + #LF$ + \Qui + #LF$ + \Avec_Qui + #LF$ + \Ou + #LF$ + \Heure + #LF$ + \Duree + #LF$ + \Note)
      EndWith
      NouveauRDV()
     
    Case 3 ;Suppression d'un RDV
      RemoveGadgetItem(#LstIcn, ListIndex(MaBase()))
      DeleteElement(MaBase())
     
      ;Mise à jour des index ListIcon <-> MaBase()
      ForEach MaBase()
        SetGadgetItemData(#LstIcn, ListIndex(MaBase()), ListIndex(MaBase()))
      Next
     
  EndSelect 
EndProcedure

;Sauvegarde des rendez-vous à la fermeture de l'application
Procedure SauvegardeRDV()
  ;Création d'un fichier JSON
  CreateJSON(#Base_de_donnees)
 
  ;Insertion de la liste chaînée "MaBase" dans le fichier JSON
  InsertJSONList(JSONValue(#Base_de_donnees), MaBase())
 
  ;Sauvegarde du fichier
  SaveJSON(#Base_de_donnees, Fichier_de_donnees$)
EndProcedure 

Procedure Ouvrir_Fenetre_principale()
  If OpenWindow(#Fenetre_principale, 0, 0, 500, 560, #TitreApplication + " © 31 mars 2016", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
    ListIconGadget(#LstIcn, 10, 40, 475, 255, "Quand", 80, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
    AddGadgetColumn(#LstIcn, 1, "Qui", 100)
    AddGadgetColumn(#LstIcn, 2, "Avec qui", 100)
    AddGadgetColumn(#LstIcn, 3, "Où", 100)
    AddGadgetColumn(#LstIcn, 4, "Heure", 45)
    AddGadgetColumn(#LstIcn, 5, "Durée", 45)
    AddGadgetColumn(#LstIcn, 6, "Note", 350)
    DateGadget(#Dte_Quand, 10, 10, 80, 20, "%dd/%mm/%yyyy", Date())
    ContainerGadget(#Ctn, 10, 300, 480, 245)
    TextGadget(#Txt_Qui, 0, 10, 20, 20, "Qui:", #PB_Text_Right)
    TextGadget(#Txt_AvecQui, 0, 50, 50, 20, "Avec qui:", #PB_Text_Right)
    TextGadget(#Txt_Ville, 0, 80, 75, 20, "Endroit ou Ville", #PB_Text_Right)
    TextGadget(#Txt_Heure, 0, 115, 35, 20, "Heure:", #PB_Text_Right)
    TextGadget(#Txt_Duree, 0, 145, 35, 20, "Durée:", #PB_Text_Right)
    TextGadget(#Txt_Note, 0, 185, 30, 20, "Note:", #PB_Text_Right)
    StringGadget(#Str_Qui, 80, 10, 395, 20, "")
    StringGadget(#Str_AvecQui, 80, 45, 395, 20, "")
    StringGadget(#Str_Ville, 80, 75, 396, 20, "")
    StringGadget(#Str_Heure, 80, 110, 35, 20, "")
    StringGadget(#Str_Duree, 80, 140, 35, 20, "")
    EditorGadget(#Edt_Note, 80, 170, GadgetWidth(#Ctn) - 85, 40)  ;395, 40)
    ButtonGadget(#Btn_Nouveau, 0, 225, 50, 20, "Nouveau")
    ButtonGadget(#Btn_Enregistrer, 100, 225, 60, 20, "Enregistrer")
    ButtonGadget(#Btn_Supprimer, 220, 225, 55, 20, "Supprimer")
    ButtonGadget(#Btn_Selectionner, 321, 225, 63, 20, "Sélectionner")
    ButtonGadget(#Btn_Quitter, 435, 225, 40, 20, "Quitter")
    CloseGadgetList()
   
    Couleur = $EAFAEA
    SetWindowColor(#Fenetre_principale, Couleur)
   
    SetGadgetColor(#Txt_Qui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_AvecQui, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Ville, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Heure, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Duree, #PB_Gadget_BackColor, Couleur)
    SetGadgetColor(#Txt_Note, #PB_Gadget_BackColor, Couleur)
   
    couleur2 = $EAEAFA
    SetGadgetColor(#Str_Qui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_AvecQui, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Ville, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Heure, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Str_Duree, #PB_Gadget_BackColor, couleur2)
    SetGadgetColor(#Edt_Note, #PB_Gadget_BackColor, couleur2)
   
    couleur3 = $FAEAEA
    SetGadgetColor(#LstIcn, #PB_Gadget_BackColor, couleur3)
   
    BindEvent( #PB_Event_SizeWindow, @Event_SizeWindow() )
  EndIf
EndProcedure

;Lancer la procédure principale 
Ouvrir_Fenetre_principale()

;Ouverture de la base de données
ChargerRDV()

;{- Boucle événementielle
Repeat
  Evenement = WaitWindowEvent()
  Select Evenement
      ; ///////////////////
    Case #PB_Event_Gadget
      EvenementGadget = EventGadget()
      TypeEvenement = EventType()
      If EvenementGadget = #LstIcn
        ;        VoirEnregistrement()
      ElseIf EvenementGadget = #Btn_Nouveau ;Nouveau Rdv
        NouveauRDV()
      ElseIf EvenementGadget = #Btn_Enregistrer ;Ajout ou modification d'un Rdv
        Mise_a_jour_RDV()         
      ElseIf EvenementGadget = #Btn_Supprimer ; Suppression d'un Rdv
        SupprimerRDV()
      ElseIf EvenementGadget = #Btn_Selectionner
        SelectionnerRDV()
      ElseIf EvenementGadget = #Btn_Quitter
        SauvegardeRDV()
        CloseWindow(#Fenetre_principale)
        Break
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EvenementFenetre = EventWindow()
      If EvenementFenetre = #Fenetre_principale
        CloseWindow(#Fenetre_principale)
        SauvegardeRDV()
        Break
      EndIf
  EndSelect
ForEver
;}

Re: Pourquoi ça ne sauvegarde pas ?

Publié : jeu. 31/mars/2016 19:11
par Micoute
Merci beaucoup Jacobus pour ton aide et tes conseils judicieux.