c'était tout simple, je te laisse te rendre compte par toi même (voir procedure Ouverture_menu)
Code : Tout sélectionner
; déclaration des constantes
Enumeration
#menu
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
#Text_6
#Text_7
#Text_8
#text_9
#text_10
#text_11
#text_12
#text_13
#text_14
#text_15
#text_16
#text_17
#text_18
#text_19
#text_20
#text_21
#text_22
#text_23
#text_24
#text_25
#String_0
#String_1
#String_2
#String_3
#String_4
#String_5
#String_6
#String_7
#String_8
#Button_0
#Button_1
#button_2
#button_consultation_film
#consultation
#film_du_catalogue
#pret_de_film
#message
#bouton_inserer
#page_film
#sauvegarder
#corriger
#gadget_editeur
#bouton_consulter
#page_consultation
#pret
#text_26
#text_27
#text_28
#text_29
#text_30
#string_9
#string_10
#string_11
#string_12
#string_13
#string_14
#fini
#retour3
#effacer
#nbre
#NbFilm ; Nombre de film contenu dans le dossier
EndEnumeration
Global titre.s, acteur1.s, realisateur.s, acteur2.s, acteur3.s, duree.s, origine.s, annee.s, producteur.s, film.s, prete.s, retour.s, personne.s, nb
Declare creation_de_film(Modification.l)
Declare recapitulatif()
Declare creation_fichier()
Declare consultation_de_film()
Declare pret_de_film()
Procedure Comptage(Dossier.s)
If ExamineDirectory(n, Dossier, "*.txt") ; on examine le dossier
Repeat
Filetype = NextDirectoryEntry() ; cherche le prochain fichier contenu dans le dossier
If FileType = 1 ; on a trouvé un fichier dans le dossier
Nb + 1
EndIf
Until FileType = 0 ; si filetype = 0 c'est qu'il n'y a plus de fichier non trouvé dans le dossier
EndIf
ProcedureReturn Nb
EndProcedure
Procedure ouverture_menu()
If OpenWindow(#menu, 0, 0, 200, 200, #pb_window_systemmenu | #pb_window_windowcentered, "menu")
If CreateGadgetList (WindowID())
ButtonGadget(#bouton_inserer, 10, 10, 180, 20, "INSERER UN FILM")
ButtonGadget(#bouton_consulter, 10, 40, 180, 20, "CONSULTER LE CATALOGUE")
ButtonGadget(#pret, 10, 70, 180, 20, "PRET DE FILM")
; Pour afficher le nombre de film
TextGadget(#NbFilm, 10, 180, 180, 20, "Nombre de films catalogués : " + Str(Comptage("C:\Dvd")))
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget
CloseWindow(#menu)
If EventID = #PB_EventGadget
Select EventGadgetID()
Case #bouton_inserer
; On initialise les variables, important !
Titre = ReadPreferenceString("Titre", "")
realisateur = ""
acteur1 = ""
acteur2 = ""
acteur3 = ""
duree = ""
origine = ""
annee = ""
producteur = ""
creation_de_film(0)
Case #bouton_consulter
consultation_de_film()
Case #pret
film = ReadPreferenceString("film", "")
personne = ""
prete = ""
retour = ""
pret_de_film ()
EndSelect
EndIf
EndProcedure
Procedure creation_de_film(Modification.l)
; Modification = 1 si on modifie la page
If OpenWindow(#page_film, 216, 0, 343, 333, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "information pour le film")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 10, 90, 20, "Titre du film :")
TextGadget(#Text_1, 10, 40, 90, 20, "Réalisateur :")
TextGadget(#Text_2, 10, 70, 90, 20, "Premier acteur :")
TextGadget(#Text_3, 10, 100, 90, 20, "Deuxième acteur :")
TextGadget(#Text_4, 10, 130, 90, 20, "Troisième acteur :")
TextGadget(#Text_5, 10, 160, 90, 20, "Durée :")
TextGadget(#Text_6, 10, 190, 90, 20, "Origine :")
TextGadget(#Text_7, 10, 220, 90, 20, "Année :")
TextGadget(#Text_8, 10, 250, 90, 20, "Producteur :")
StringGadget(#String_0, 100, 10, 210, 20, Titre)
StringGadget(#String_1, 100, 40, 210, 20, realisateur)
StringGadget(#String_2, 100, 70, 210, 20, acteur1)
StringGadget(#String_3, 100, 100, 210, 20, acteur2)
StringGadget(#String_4, 100, 130, 210, 20, acteur3)
StringGadget(#String_5, 100, 160, 210, 20, duree)
StringGadget(#String_6, 100, 190, 210, 20, origine)
StringGadget(#String_7, 100, 220, 210, 20, annee)
StringGadget(#String_8, 100, 250, 210, 20, producteur)
ButtonGadget(#Button_0, 30, 290, 120, 30, "Terminer")
ButtonGadget(#Button_1, 190, 290, 120, 30, "Annuler")
EndIf
Recapitulatif = 0
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID() ; La gestion des évenements
Case #Button_0
; L'utilistateur à terminer la saisie des informations
titre = GetGadgetText(#String_0)
realisateur = GetGadgetText(#String_1)
acteur1 = GetGadgetText(#String_2)
acteur2 = GetGadgetText(#String_3)
acteur3 = GetGadgetText(#String_4)
duree = GetGadgetText(#String_5)
origine = GetGadgetText(#String_6)
annee = GetGadgetText(#String_7)
producteur = GetGadgetText(#String_8)
; On a mémorisé toute les informations utiles
; on ferme la fenetre et on quitte
CloseWindow(#page_film)
Recapitulatif = 1
Case #Button_1
; L'utilisateur à changer d'idée, on ferme la fenètre
If Modification ; Si on ne fait que modifier le film, on retourne au récapitulatif
Recapitulatif = 1
EndIf
EventID = #PB_EventCloseWindow
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow Or Recapitulatif
; On ferme la Fenètre pour la saisie des informations d'un film
CloseWindow(#page_film)
If Recapitulatif
Recapitulatif()
Else
ouverture_menu()
EndIf
EndIf
EndProcedure
Procedure recapitulatif()
If OpenWindow(#page_film, 216, 0, 430, 400, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "Récapitulatif des informations pour le nouveau film")
If CreateGadgetList(WindowID())
ButtonGadget(#sauvegarder, 10, 340, 200, 20, "sauvegarder")
ButtonGadget(#corriger, 220, 340, 200, 20, "corriger")
ButtonGadget(#button_2, 10, 370, 200, 20, "retour au menu")
ButtonGadget(#pret, 220, 370, 200, 20, "pret du film")
If LoadFont(0, "arial", 25, #PB_Font_Underline)
TextGadget(#text_9, 10, 10, 430, 40, titre, #pb_text_center)
SetGadgetFont(#text_9, FontID())
TextGadget(#text_10, 10, 100, 100, 20, "Réalisé par :")
TextGadget(#text_11, 200, 100, 150, 20, realisateur)
TextGadget(#text_12, 10, 130, 100, 20, "avec entre autre : ")
TextGadget(#text_13, 200, 130, 100, 15, acteur1)
TextGadget(#text_14, 200, 150, 100, 15, acteur2)
TextGadget(#text_15, 200, 170, 100, 15, acteur3)
TextGadget(#text_16, 10, 200, 150, 20, "La duree du film est de :")
TextGadget(#text_17, 200, 200, 100, 20, duree)
TextGadget(#text_18, 10, 230, 100, 20, "l'origine est : ")
TextGadget(#text_19, 200, 230, 100, 20, origine)
TextGadget(#text_20, 10, 260, 190, 20, " création de " + titre + " est :")
TextGadget(#text_21, 200, 260, 100, 20, annee)
TextGadget(#text_22, 10, 290, 100, 20, "produit par : ")
TextGadget(#text_23, 200, 290, 100, 20, producteur)
EndIf
Repeat
EventID = WaitWindowEvent()
Until EventID = #PB_EventCloseWindow Or EventID = #PB_EventGadget
CloseWindow(#page_film)
If EventID = #PB_EventGadget
Select EventGadgetID()
Case #corriger
creation_de_film(1)
Case #sauvegarder
creation_fichier()
Case #button_2
ouverture_menu()
Case #pret
pret_de_film()
Case #nbre
EndSelect
EndIf
EndIf
EndIf
EndProcedure
Procedure creation_fichier()
; Demande le nom du fichier à l'utilisateur avec le titre du film en nom par défaut
Fichier.s = SaveFileRequester("Sauver le fichier", "c:\dvd\" + Titre + ".txt", "Fichiers texte|*.txt", 0)
If Fichier = "" ; Si la function retourne un texte vide, vous avez appuyé sur annulé
Else ; si la fonction SaveFileRequester retourne une valeur
If GetExtensionPart(Fichier) = "" ; si le nom de fichier ne comporte pas d'extension
Fichier = Fichier + ".txt" ; on ajoute l'extension
EndIf
If CreatePreferences(Fichier) ; On crée un fichier de préférences, c'est plus simple qu'un fichier normal au niveau de la gestion
WritePreferenceString("Titre", Titre)
WritePreferenceString("Réalisateur", realisateur)
WritePreferenceString("Acteur 1", acteur1)
WritePreferenceString("Acteur 2", acteur2)
WritePreferenceString("Acteur 3", acteur3)
WritePreferenceString("Durée", duree)
WritePreferenceString("Origine", origine)
WritePreferenceString("Année", annee)
WritePreferenceString("Producteur", producteur)
WritePreferenceString("nom de l'emprunteur", personne)
WritePreferenceString ("date de pret", prete)
WritePreferenceString("date de retour", retour)
ClosePreferences()
MessageRequester("Validation", "Le film " + titre + " est bien enregistré")
Else
MessageRequester("probleme", "impossible de creer le fichier", 0)
EndIf
EndIf
Recapitulatif()
EndProcedure
Procedure consultation_de_film()
; on demande le fichier a ouvrir
Fichier.s = OpenFileRequester("Ouvrir", "c:\dvd\", "Films|*.txt", 0)
If Fichier = "" ; on a annulé la demande d'ouverture de fichier
Ouverture_Menu() ; on retourne au menu
Else
If OpenPreferences(Fichier)
Titre = ReadPreferenceString("Titre", "")
realisateur = ReadPreferenceString("Réalisateur", "")
acteur1 = ReadPreferenceString("Acteur 1", "")
acteur2 = ReadPreferenceString("Acteur 2", "")
acteur3 = ReadPreferenceString("Acteur 3", "")
duree = ReadPreferenceString("Durée", "")
origine = ReadPreferenceString("Origine", "")
annee = ReadPreferenceString("Année", "")
producteur = ReadPreferenceString("Producteur", "")
personne = ReadPreferenceString("nom de l'emprunteur", "")
prete = ReadPreferenceString("date de pret", "")
retour = ReadPreferenceString("date de retour", "")
ClosePreferences()
; on affiche le film
Recapitulatif()
EndIf
EndIf
EndProcedure
Procedure pret_de_film()
If OpenWindow(#pret_de_film, 216, 0, 430, 150, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_WindowCentered, "PRET DU FILM " + TITRE)
If CreateGadgetList(WindowID())
TextGadget(#text_26, 10, 10, 150, 20, "nom de l'emprunteur :")
StringGadget(#string_9, 170, 10, 210, 20, personne)
TextGadget(#text_27, 10, 50, 90, 20, "date de pret :")
StringGadget(#string_10, 100, 50, 100, 20, prete)
TextGadget(#text_28, 210, 50, 90, 20, "date de retour :")
StringGadget(#string_11, 310, 50, 90, 20, retour)
ButtonGadget(#fini, 270, 100, 90, 20, "sauvegarder")
ButtonGadget(#retour3, 10, 100, 90, 20, "retour")
EndIf
Repeat
EventID = WaitWindowEvent()
If EventID = #PB_EventGadget
Select EventGadgetID() ; La gestion des évenements
Case #fini
; L'utilistateur à terminer la saisie des informations
personne = GetGadgetText(#String_9)
prete = GetGadgetText(#String_10)
retour = GetGadgetText(#String_11)
; On a mémorisé toute les informations utiles
; on ferme la fenetre et on quitte
CloseWindow(#pret_de_film)
creation_fichier()
Case #retour3
CloseWindow(#pret_de_film)
ouverture_menu()
EndSelect
EndIf
Until EventID = #PB_EventCloseWindow
EndIf
EndProcedure
ouverture_menu()