[Résolu] Faire des StringGadgets à la volée
Publié : jeu. 08/oct./2015 9:50
Bonjour à tous,
j'essaies de faire un module où on pourrait entrer le nombre de champs que comportera une base de données qu'on souhaite créer pour pouvoir la remplir ultérieurement.
Mais là où je buttes, c'est quand on a entré le nombres de champs à inscrire avec des StringGadget à l'aide d'une boucle définie par le nombre d'éléments à saisir.
Si vous pouviez m'aider, j'en serais très heureux et je vous en remercie à l'avance.
j'essaies de faire un module où on pourrait entrer le nombre de champs que comportera une base de données qu'on souhaite créer pour pouvoir la remplir ultérieurement.
Mais là où je buttes, c'est quand on a entré le nombres de champs à inscrire avec des StringGadget à l'aide d'une boucle définie par le nombre d'éléments à saisir.
Si vous pouviez m'aider, j'en serais très heureux et je vous en remercie à l'avance.
Code : Tout sélectionner
;{- Enumerations / DataSections
;{ Windows
Enumeration
#Fenetre_Prorietes_Creation
#Fenetre_Champs
EndEnumeration
;}
;{ Gadgets
Enumeration
#Txt_Fichier_de_donnees
#Txt_Nombre_Champs
#Str_Fichier_de_donnees
#Str_Nombre_Champs
#Btn_Valider
#Btn_Valider_Champs
EndEnumeration
;}
Structure Champ
Nom.s
Type.i
EndStructure
Define Evenement, Nombre_Champs, Type_du_champ
Define.s Fichier_de_donnees, Nom_du_champ
Global NewList Champs.Champ()
;}
Procedure Ouvrir_Fenetre_Prorietes_Creation()
Protected Flags = #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered
If OpenWindow(#Fenetre_Prorietes_Creation, 0, 0, 420, 75, "Propriétés Création Base de données", Flags)
TextGadget(#Txt_Fichier_de_donnees, 15, 15, 95, 20, "Fichier de données")
StringGadget(#Str_Fichier_de_donnees,110, 15, 280, 20, "", #PB_String_BorderLess)
ButtonGadget(#Btn_Valider, 170, 45, 60, 20, "Valider")
SetActiveGadget(#Str_Fichier_de_donnees)
EndIf
EndProcedure
Procedure Creation_Champs()
Protected Flags = #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar|#PB_Window_ScreenCentered
If OpenWindow(#Fenetre_Champs, 0, 0, 303, 45, "Création des champs", Flags)
TextGadget(#Txt_Nombre_Champs, 10, 10, 100, 20, "Nombres de champs : ")
StringGadget(#Str_Nombre_Champs, 120, 10, 100, 20, "")
ButtonGadget(#Btn_Valider_Champs, 230, 10, 60, 20, "Valider")
EndIf
EndProcedure
Procedure Construction_Champs()
For i = 1 To Nombre_Champs
AddElement(Champs())
Champs()\Nom = Nom_du_champ
Champs()\Type = Type_du_champ
EndProcedure
Ouvrir_Fenetre_Prorietes_Creation()
;{- Boucle événementielle
Repeat
Evenement = WaitWindowEvent()
Select Evenement
; ///////////////////
Case #PB_Event_Gadget
Select EventGadget()
Case #Btn_Valider
If GetGadgetText(#Str_Fichier_de_donnees) <> ""
Fichier_de_donnees = GetGadgetText(#Str_Fichier_de_donnees) + "SQLite"
Creation_Champs()
EndIf
Case #Btn_Valider_Champs
Nombre_Champs = GetGadgetText(#Str_Nombre_Champs)
EndSelect
; ////////////////////////
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_Prorietes_Creation
CloseWindow(#Fenetre_Prorietes_Creation)
Break
EndSelect
EndSelect
ForEver
;
;}