Os : Windows 10
Bonjour membres du forum,
Poo Wizard est un outil qui aide à mettre en place la structure d’un objet (POO) en toute simplicité.
IMAGE

En haut, le nom de l’objet que vous voulez créer.
Viennent ensuite 3 onglets :
Onglet Variables (ou les propriétés de l’objet) se compose de 3 champs.
1 - Nom de variables (bien évidemment)
2 - Type ( Les types prédéfini via la combo box)
Mais aussi les type personnalisés à entrer dans la zone de saisie de la combo box,
ils seront ajouté automatiquement à celle-ci.
3 - A.L.M (pour Array,List et Map via la combo box)
Onglet F.Publiques (ou les méthodes de l’objet) se compose de 2 champs.
1 - Nom des fonctions (bien évidemment)
2 - Type ( Les types prédéfini via la combo box), non personnalisable.
Onglet F.Privées (interne à l’objet) se compose de 2 champs.
1 - Nom des fonctions (bien évidemment)
2 - Type ( Les types prédéfini via la combo box), non personnalisable.
Vient ensuite les zones de saisie ou entrer les informations.
Une fois les champs renseigner, on ajoute, insert ou modifie avec les boutons.
Une sélection dans la liste permet de la supprimer ou la modifier.
L’exportation se fait au format TXT pour ne pas écraser le source. Un copier-coller pour intégrer l’objet dans votre projet et il ne vous reste plus qu’à coder les procédures misent en place et initialiser les variables.
Code remis à jour le 10/03/2025
Code remis à jour le 22/03/2025 ( Procedure Button_ExportSourceOnClick )
Code : Tout sélectionner
;Global Titre .s = "Poo Wizard-20240123"
;Global Titre .s = "Poo Wizard-20240919"
;Global Titre .s = "Poo Wizard-20250223"
;Global Titre .s = "Poo Wizard-20250225"
Global Titre .s = "Poo Wizard-20250310"
Global Titre .s = "Poo Wizard-20250322"
Global FileName .s = ""
Global CheminLoad .s = GetCurrentDirectory( )
Global CheminSave .s = GetCurrentDirectory( )
Global CheminExport .s = GetCurrentDirectory( )
Global NameObj .s = ""
Global TxtA .s = ""
Global TxtB .s = ""
Global TxtC .s = ""
Global NomTxt .s = ""
Global TypTxt .s = ""
Global AlmTxt .s = ""
Global Tab$ = Chr( 9 )
Global Selection .w = 0
Global FinDuProgramme .a = #False
Global Compteur .a = 0
#Fichier = 0
; *****************
; L'interface graphique
Enumeration FormWindow
#Win_0
EndEnumeration
Enumeration FormGadget
#Text_MonObjet
#String_MonObjet
#Panel_Objet
#ListIcon_Var
#String_VarNom
#Combo_VarType
#Combo_VarAlm
#Button_VarAjouter
#Button_VarModifier
#Button_VarSupprimer
#Button_VarInserer
#ListIcon_Publique
#String_PubliqueNom
#Combo_PubliqueType
#Button_PubiqueAjouter
#Button_PubiqueModifier
#Button_PubiqueSupprimer
#Button_PubiqueInserer
#ListIcon_Privee
#String_PriveeNom
#Combo_PriveeType
#Button_PriveeAjouter
#Button_PriveeModifier
#Button_PriveeSupprimer
#Button_PriveeInserer
#Button_ExportSource
#Button_Quitter
#Button_Charge
#Button_Sauve
EndEnumeration
Declare Button_VarSupprimerOnClick(EventType)
Declare ListIcon_PriveeSelect(EventType)
Declare Button_VarAjouterOnClick(EventType)
Declare Button_QuitterOnClick(EventType)
Declare Button_PubiqueModifierOnClick(EventType)
Declare Button_PriveeAjouterOnClick(EventType)
Declare Button_ChargeOnClick(EventType)
Declare Button_PriveeModifierOnClick(EventType)
Declare Button_PubiqueAjouterOnClick(EventType)
Declare Button_VarInsererOnClick(EventType)
Declare ListIcon_PubliqueSelect(EventType)
Declare Button_PubliqueInsererOnClick(EventType)
Declare Button_ExportSourceOnClick(EventType)
Declare Button_PriveeInsererOnClick(EventType)
Declare Button_VarModifierOnClick(EventType)
Declare ListIcon_VarSelect(EventType)
Declare Button_PriveeSupprimerOnClick(EventType)
Declare Button_PubiqueSupprimerOnClick(EventType)
Declare Button_SauveOnClick(EventType)
Procedure OpenWin_0(x = 0, y = 0, width = 540, height = 410)
OpenWindow(#Win_0, x, y, width, height, "", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(#Win_0, RGB(128,255,255))
TextGadget(#Text_MonObjet, 10, 10, 90, 20, "Nom de l'objet : ")
SetGadgetColor(#Text_MonObjet, #PB_Gadget_BackColor,RGB(128,255,255))
StringGadget(#String_MonObjet, 110, 10, 200, 20, "MonObjet")
PanelGadget(#Panel_Objet, 10, 40, 520, 330)
AddGadgetItem(#Panel_Objet, -1, "Variables")
ListIconGadget(#ListIcon_Var, 10, 10, 410, 250, "Nom des variables", 240, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#ListIcon_Var, 1, "Type", 70)
AddGadgetColumn(#ListIcon_Var, 2, "A.L.M", 70)
SetGadgetColor(#ListIcon_Var, #PB_Gadget_BackColor,RGB(128,255,128))
StringGadget(#String_VarNom, 10, 270, 250, 20, "")
ComboBoxGadget(#Combo_VarType, 270, 270, 65, 20, #PB_ComboBox_Editable)
AddGadgetItem(#Combo_VarType, -1, "")
AddGadgetItem(#Combo_VarType, -1, ".a")
AddGadgetItem(#Combo_VarType, -1, ".b")
AddGadgetItem(#Combo_VarType, -1, ".c")
AddGadgetItem(#Combo_VarType, -1, ".u")
AddGadgetItem(#Combo_VarType, -1, ".w")
AddGadgetItem(#Combo_VarType, -1, ".l")
AddGadgetItem(#Combo_VarType, -1, ".i")
AddGadgetItem(#Combo_VarType, -1, ".f")
AddGadgetItem(#Combo_VarType, -1, ".q")
AddGadgetItem(#Combo_VarType, -1, ".d")
AddGadgetItem(#Combo_VarType, -1, ".s")
AddGadgetItem(#Combo_VarType, -1, ".s{ }")
ComboBoxGadget(#Combo_VarAlm, 340, 270, 70, 20)
AddGadgetItem(#Combo_VarAlm, -1, "")
AddGadgetItem(#Combo_VarAlm, -1, "Array")
AddGadgetItem(#Combo_VarAlm, -1, "List")
AddGadgetItem(#Combo_VarAlm, -1, "Map")
ButtonGadget(#Button_VarAjouter, 430, 180, 80, 20, "Ajouter")
ButtonGadget(#Button_VarModifier, 430, 210, 80, 20, "Modifier")
ButtonGadget(#Button_VarSupprimer, 430, 240, 80, 20, "Supprimer")
ButtonGadget(#Button_VarInserer, 430, 150, 80, 20, "Insérer")
AddGadgetItem(#Panel_Objet, -1, "F.Publiques")
ListIconGadget(#ListIcon_Publique, 10, 10, 410, 250, "Nom des fonctions publiques", 310, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#ListIcon_Publique, 1, "Type", 70)
SetGadgetColor(#ListIcon_Publique, #PB_Gadget_BackColor,RGB(255,128,255))
StringGadget(#String_PubliqueNom, 10, 270, 320, 20, "")
ComboBoxGadget(#Combo_PubliqueType, 340, 270, 70, 20)
AddGadgetItem(#Combo_PubliqueType, -1, "")
AddGadgetItem(#Combo_PubliqueType, -1, ".a")
AddGadgetItem(#Combo_PubliqueType, -1, ".b")
AddGadgetItem(#Combo_PubliqueType, -1, ".c")
AddGadgetItem(#Combo_PubliqueType, -1, ".u")
AddGadgetItem(#Combo_PubliqueType, -1, ".w")
AddGadgetItem(#Combo_PubliqueType, -1, ".l")
AddGadgetItem(#Combo_PubliqueType, -1, ".i")
AddGadgetItem(#Combo_PubliqueType, -1, ".f")
AddGadgetItem(#Combo_PubliqueType, -1, ".q")
AddGadgetItem(#Combo_PubliqueType, -1, ".d")
AddGadgetItem(#Combo_PubliqueType, -1, ".s")
AddGadgetItem(#Combo_PubliqueType, -1, ".s{ }")
ButtonGadget(#Button_PubiqueAjouter, 430, 180, 80, 20, "Ajouter")
ButtonGadget(#Button_PubiqueModifier, 430, 210, 80, 20, "Modifier")
ButtonGadget(#Button_PubiqueSupprimer, 430, 240, 80, 20, "Supprimer")
ButtonGadget(#Button_PubiqueInserer, 430, 150, 80, 20, "Insérer")
AddGadgetItem(#Panel_Objet, -1, "F.Privées")
ListIconGadget(#ListIcon_Privee, 10, 10, 410, 250, "Nom des fonctions privées", 310, #PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect | #PB_ListIcon_AlwaysShowSelection)
AddGadgetColumn(#ListIcon_Privee, 1, "Type", 70)
SetGadgetColor(#ListIcon_Privee, #PB_Gadget_BackColor,RGB(128,255,255))
StringGadget(#String_PriveeNom, 10, 270, 320, 20, "")
ComboBoxGadget(#Combo_PriveeType, 340, 270, 70, 20)
AddGadgetItem(#Combo_PriveeType, -1, "")
AddGadgetItem(#Combo_PriveeType, -1, ".a")
AddGadgetItem(#Combo_PriveeType, -1, ".b")
AddGadgetItem(#Combo_PriveeType, -1, ".c")
AddGadgetItem(#Combo_PriveeType, -1, ".u")
AddGadgetItem(#Combo_PriveeType, -1, ".w")
AddGadgetItem(#Combo_PriveeType, -1, ".l")
AddGadgetItem(#Combo_PriveeType, -1, ".i")
AddGadgetItem(#Combo_PriveeType, -1, ".f")
AddGadgetItem(#Combo_PriveeType, -1, ".q")
AddGadgetItem(#Combo_PriveeType, -1, ".d")
AddGadgetItem(#Combo_PriveeType, -1, ".s")
AddGadgetItem(#Combo_PriveeType, -1, ".s{ }")
ButtonGadget(#Button_PriveeAjouter, 430, 180, 80, 20, "Ajouter")
ButtonGadget(#Button_PriveeModifier, 430, 210, 80, 20, "Modifier")
ButtonGadget(#Button_PriveeSupprimer, 430, 240, 80, 20, "Supprimer")
ButtonGadget(#Button_PriveeInserer, 430, 150, 80, 20, "Insérer")
CloseGadgetList()
ButtonGadget(#Button_ExportSource, 330, 10, 80, 20, "Export Source")
ButtonGadget(#Button_Quitter, 450, 10, 80, 20, "Quitter")
ButtonGadget(#Button_Charge, 120, 380, 100, 20, "Charge")
ButtonGadget(#Button_Sauve, 310, 380, 80, 20, "Sauve")
EndProcedure
Procedure Win_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Gadget
Select EventGadget()
Case #ListIcon_Var
ListIcon_VarSelect(EventType())
Case #Button_VarAjouter
Button_VarAjouterOnClick(EventType())
Case #Button_VarModifier
Button_VarModifierOnClick(EventType())
Case #Button_VarSupprimer
Button_VarSupprimerOnClick(EventType())
Case #Button_VarInserer
Button_VarInsererOnClick(EventType())
Case #ListIcon_Publique
ListIcon_PubliqueSelect(EventType())
Case #Button_PubiqueAjouter
Button_PubiqueAjouterOnClick(EventType())
Case #Button_PubiqueModifier
Button_PubiqueModifierOnClick(EventType())
Case #Button_PubiqueSupprimer
Button_PubiqueSupprimerOnClick(EventType())
Case #Button_PubiqueInserer
Button_PubliqueInsererOnClick(EventType())
Case #ListIcon_Privee
ListIcon_PriveeSelect(EventType())
Case #Button_PriveeAjouter
Button_PriveeAjouterOnClick(EventType())
Case #Button_PriveeModifier
Button_PriveeModifierOnClick(EventType())
Case #Button_PriveeSupprimer
Button_PriveeSupprimerOnClick(EventType())
Case #Button_PriveeInserer
Button_PriveeInsererOnClick(EventType())
Case #Button_ExportSource
Button_ExportSourceOnClick(EventType())
Case #Button_Quitter
Button_QuitterOnClick(EventType())
Case #Button_Charge
Button_ChargeOnClick(EventType())
Case #Button_Sauve
Button_SauveOnClick(EventType())
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
; *****************
; Autres procédures
Procedure GenereInterface ( Fichier.a )
WriteStringN( Fichier , "Interface" + Tab$ + "New" + NameObj )
For i = 0 To CountGadgetItems( #ListIcon_Publique )
NomTxt = GetGadgetItemText( #ListIcon_Publique , i , 0 )
TypTxt = GetGadgetItemText( #ListIcon_Publique , i , 1 )
If NomTxt <>""
If TypTxt = ""
TypTxt = Tab$
EndIf
NomTxt + Tab$ + TypTxt + Tab$ + "( Parametres )"
WriteStringN( Fichier , Tab$ + NomTxt )
EndIf
Next
WriteStringN( Fichier , Tab$ + "Free" + Tab$ + "( )" )
WriteStringN( Fichier , "EndInterface" )
WriteStringN( Fichier , "" )
EndProcedure
Procedure GenereStructure ( Fichier.a )
; Structures parsonalisées
For i = 0 To CountGadgetItems ( #ListIcon_Var )
TypTxt = GetGadgetItemText ( #ListIcon_Var , i , 1 ) ; Lecture Type de la variable
Select LCase( TypTxt )
Case ""
Case ".a"
Case ".b"
Case ".c"
Case ".u"
Case ".w"
Case ".l"
Case ".i"
Case ".f"
Case ".q"
Case ".d"
Case ".s"
Case ".s"
Case ".s{}"
Default
; **********************************************
If Mid( TypTxt ,1 , 1 ) = "." ; Maj 20250310
TypTxt = Right( TypTxt , Len( TypTxt ) - 1 )
EndIf
;***********************************************
WriteStringN( Fichier , "Structure" + Tab$ + TypTxt )
WriteStringN( Fichier , "" )
WriteStringN( Fichier , "" )
WriteStringN( Fichier , "EndStructure" )
WriteStringN( Fichier , "" )
EndSelect
Next
WriteStringN( Fichier , "Structure" + Tab$ + NameObj + "_Typ" )
WriteStringN( Fichier , Tab$ + "*DSVT" )
For i = 0 To CountGadgetItems ( #ListIcon_Var )
NomTxt = GetGadgetItemText ( #ListIcon_Var , i , 0 ) ; Lecture Nom de la variable
TypTxt = GetGadgetItemText ( #ListIcon_Var , i , 1 ) ; Lecture Type de la variable
AlmTxt = GetGadgetItemText ( #ListIcon_Var , i , 2 ) ; Lecture Array,List,Map
If NomTxt <>""
If TypTxt = ""
TypTxt = Tab$
EndIf
NomTxt = NomTxt + Tab$ + TypTxt
If AlmTxt <> "" ; Array,List,Map
If AlmTxt = "Array" ; Array,List,Map
NomTxt = NomTxt + Tab$ + "( 1 )"
Else
NomTxt = NomTxt + Tab$ + "( )"
EndIf
NomTxt = AlmTxt + Tab$ + NomTxt
EndIf
WriteStringN( Fichier , Tab$ + NomTxt )
EndIf
Next
WriteStringN( Fichier , "EndStructure" )
WriteStringN( Fichier , "" )
EndProcedure
Procedure GenereInit ( Fichier.a )
WriteStringN( Fichier , "Procedure" + Tab$ + ".i" + Tab$ + NameObj + "_Init" + Tab$ + "( Parametres )" )
WriteStringN( Fichier , Tab$ + "Protected *Object." + NameObj + "_Typ" )
WriteStringN( Fichier , Tab$ + "*Object = AllocateMemory( SizeOf( " + NameObj + "_Typ" + " ) )" ) ; Allocation mémoire pour un nouveau modèle de classe.
WriteStringN( Fichier , Tab$ + "If *Object" )
WriteStringN( Fichier , Tab$ + Tab$ + "With *Object" )
WriteStringN( Fichier , Tab$ + Tab$ + Tab$ + "\DSVT = ?" + NameObj + "_Class" )
For i = 0 To CountGadgetItems( #ListIcon_Var )
NomTxt = GetGadgetItemText ( #ListIcon_Var , i , 0 ) ; Nom de la variable
AlmTxt = GetGadgetItemText ( #ListIcon_Var , i , 2 ) ; Array,Map,List
If NomTxt <>"" ; Si nom valide
Select AlmTxt
Case "" ; Si Array,Map,List
WriteStringN( Fichier , Tab$ + Tab$ + Tab$ + "\" + NomTxt + Tab$ + "= ")
Case "Array"
WriteStringN( Fichier , Tab$ + Tab$ + Tab$ + "Dim" + Tab$ + "\" + NomTxt + Tab$ + "( Dimensions )" )
Case "List"
WriteStringN( Fichier , Tab$ + Tab$ + Tab$ + "New" + AlmTxt + Tab$ + "\" + NomTxt + Tab$ + "( )" )
Case "Map"
WriteStringN( Fichier , Tab$ + Tab$ + Tab$ + "New" + AlmTxt + Tab$ + "\" + NomTxt + Tab$ + "( )" )
EndSelect
EndIf
Next
WriteStringN( Fichier , Tab$ + Tab$ + "EndWith" )
WriteStringN( Fichier , Tab$ + "EndIf" )
WriteStringN( Fichier , Tab$ + "ProcedureReturn *object" )
WriteStringN( Fichier , "EndProcedure" )
WriteStringN( Fichier , "" )
EndProcedure
Procedure GenereMethode ( Fichier.a )
; ****************************
; *** Procedures Privees ***
; ****************************
WriteStringN ( Fichier , " ; Procedures Privees" )
For i = 0 To CountGadgetItems( #ListIcon_Privee )
NomTxt = GetGadgetItemText( #ListIcon_Privee , i , 0 ) ; Nom de la variable
TypTxt = GetGadgetItemText( #ListIcon_Privee , i , 1 ) ; Type de la variable
If NomTxt <>"" ; Si nom valide
If TypTxt = ""
TypTxt = Tab$
EndIf
WriteStringN ( Fichier , "Procedure" + Tab$ + TypTxt + Tab$ + NameObj + "_" + NomTxt + Tab$ + "( *This." + NameObj + "_Typ , Parametres )" )
WriteStringN ( Fichier , Tab$ + "With *This" )
WriteStringN ( Fichier , "" )
WriteStringN ( Fichier , Tab$ + "EndWith" )
If TypTxt <> "" And TypTxt <> Tab$
WriteStringN( Fichier , Tab$ + "ProcedureReturn ; Resultat" )
EndIf
WriteStringN ( Fichier , "EndProcedure" )
EndIf
Next
WriteStringN( Fichier , "" )
; ****************************
; *** Procedures Publiques ***
; ****************************
WriteStringN ( Fichier , " ; Procedures Publiques ( Methode )" )
For i = 0 To CountGadgetItems( #ListIcon_Publique )
NomTxt = GetGadgetItemText( #ListIcon_Publique , i , 0 ) ; Nom de la variable
TypTxt = GetGadgetItemText( #ListIcon_Publique , i , 1 ) ; Type de la variable
If NomTxt <>"" ; Si nom valide
If TypTxt = ""
TypTxt = Tab$
EndIf
WriteStringN ( Fichier , "Procedure" + Tab$ + TypTxt + Tab$ + NameObj + "_" + NomTxt + Tab$ + "( *This." + NameObj + "_Typ , Parametres )" )
WriteStringN ( Fichier , Tab$ + "With *This" )
WriteStringN ( Fichier , "" )
WriteStringN ( Fichier , Tab$ + "EndWith" )
If TypTxt <> "" And TypTxt <> Tab$
WriteStringN( Fichier , Tab$ + "ProcedureReturn ; Resultat" )
EndIf
WriteStringN ( Fichier , "EndProcedure" )
EndIf
Next
WriteStringN ( Fichier , "Procedure" + Tab$ + Tab$ + Tab$ + NameObj + "_Free" + Tab$ + "( *This." + NameObj + "_Typ )" )
WriteStringN ( Fichier , Tab$ + "FreeMemory( *This )" )
WriteStringN ( Fichier , "EndProcedure" )
WriteStringN ( Fichier , "" )
EndProcedure
Procedure GenereDataSection ( Fichier.a )
WriteStringN ( Fichier , "DataSection" )
WriteStringN ( Fichier , Tab$ + NameObj + "_Class:" )
For i = 0 To CountGadgetItems( #ListIcon_Publique )
NomTxt = GetGadgetItemText( #ListIcon_Publique , i , 0 ) ; Nom de la variable
If NomTxt <>"" ; Si nom valide
WriteStringN ( Fichier , Tab$ + "Data.i @" + NameObj + "_" + NomTxt + Tab$ + "( )" )
EndIf
Next
WriteStringN ( Fichier , Tab$ + "Data.i @" + NameObj + "_Free" + Tab$ + "( )" )
WriteStringN ( Fichier , "EndDataSection" )
WriteStringN ( Fichier , "" )
EndProcedure
Procedure GenereExemple ( Fichier.a )
WriteStringN ( Fichier , "" )
WriteStringN ( Fichier , "" )
WriteStringN ( Fichier , "; ***************" )
WriteStringN ( Fichier , "; *** Exemple ***" )
WriteStringN ( Fichier , "; ***************" )
WriteStringN ( Fichier , "; " )
WriteStringN ( Fichier , "; MonObjet" + Tab$ + ".New" + NameObj + Tab$ + "= " + NameObj + "_Ini" + Tab$ + "( Parametres )" )
For i = 0 To CountGadgetItems ( #ListIcon_Publique )
NomTxt = GetGadgetItemText ( #ListIcon_Publique , i , 0 )
If NomTxt <> ""
WriteStringN ( Fichier , "; MonObjet\" + NomTxt + Tab$ + "( Parametres )" )
EndIf
Next
WriteStringN ( Fichier , "; MonObjet\" + "Free" + Tab$ + "( )" )
EndProcedure
Procedure AddTypToList ( _TypTxt.s )
; Si le type n'existe pas dans la comboBox
; On l'ajoute à la suite
Protected .a Existe = #False
Protected .a Compteur = CountGadgetItems( #Combo_VarType )
For i = 0 To Compteur - 1
If _TypTxt = GetGadgetItemText( #Combo_VarType , i ) : Existe = #True : EndIf
Next
If Not Existe : AddGadgetItem( #Combo_VarType , -1 , _TypTxt ) : EndIf
EndProcedure
; *****************
; Les procédures d'initialisation
Procedure InitWin_0 ( )
SetWindowTitle( #Win_0 , Titre )
SetGadgetState( #Combo_VarType , 0 )
SetGadgetState( #Combo_VarAlm , 0 )
SetGadgetState( #Combo_PubliqueType , 0 )
SetGadgetState( #Combo_PriveeType , 0 )
EndProcedure
; *****************
; Les procédures d'événements
; Les variables
Procedure ListIcon_VarSelect ( EventType )
Selection = GetGadgetState( #ListIcon_Var )
If Selection > -1
SetGadgetText( #String_VarNom , GetGadgetItemText( #ListIcon_Var , Selection , 0 ) )
SetGadgetText( #Combo_VarType , GetGadgetItemText( #ListIcon_Var , Selection , 1 ) )
SetGadgetText( #Combo_VarAlm , GetGadgetItemText( #ListIcon_Var , Selection , 2 ) )
EndIf
EndProcedure
Procedure Button_VarInsererOnClick ( EventType )
NomTxt = GetGadgetText( #String_VarNom )
TypTxt = GetGadgetText( #Combo_VarType )
AlmTxt = GetGadgetText( #Combo_VarAlm )
If Mid( Trim( TypTxt ) , 1 , 1 ) <> "." : TypTxt = "." + TypTxt : EndIf
If NomTxt <> ""
Selection = GetGadgetState( #ListIcon_Var )
If Selection > -1
AddGadgetItem( #ListIcon_Var , -1 , "" ) : ; Debug CountGadgetItems( #ListIcon_Var )
For i = CountGadgetItems( #ListIcon_Var ) - 1 To Selection Step -1
SetGadgetItemText( #ListIcon_Var , i + 1 , GetGadgetItemText( #ListIcon_Var , i , 0 ) , 0 )
SetGadgetItemText( #ListIcon_Var , i + 1 , GetGadgetItemText( #ListIcon_Var , i , 1 ) , 1 )
SetGadgetItemText( #ListIcon_Var , i + 1 , GetGadgetItemText( #ListIcon_Var , i , 2 ) , 2 )
Next
SetGadgetItemText( #ListIcon_Var , Selection , NomTxt , 0 )
SetGadgetItemText( #ListIcon_Var , Selection , TypTxt , 1 )
SetGadgetItemText( #ListIcon_Var , Selection , AlmTxt , 2 )
AddTypToList( TypTxt )
EndIf
EndIf
EndProcedure
Procedure Button_VarAjouterOnClick ( EventType )
NomTxt = GetGadgetText( #String_VarNom )
TypTxt = GetGadgetText( #Combo_VarType )
AlmTxt = GetGadgetText( #Combo_VarAlm )
If Mid( Trim( TypTxt ) , 1 , 1 ) <> "." : TypTxt = "." + TypTxt : EndIf
If NomTxt <> ""
NomTxt + Chr( 10 ) + TypTxt
NomTxt + Chr( 10 ) + AlmTxt
AddGadgetItem( #ListIcon_Var , -1 , NomTxt ) : ; Debug CountGadgetItems( #ListIcon_Var )
AddTypToList( TypTxt )
EndIf
EndProcedure
Procedure Button_VarModifierOnClick ( EventType )
Selection = GetGadgetState( #ListIcon_Var )
If Selection > -1
NomTxt = GetGadgetText( #String_VarNom )
TypTxt = GetGadgetText( #Combo_VarType )
AlmTxt = GetGadgetText( #Combo_VarAlm )
If Mid( Trim( TypTxt ) , 1 , 1 ) <> "." : TypTxt = "." + TypTxt : EndIf
If NomTxt <> ""
SetGadgetItemText( #ListIcon_Var , Selection , NomTxt , 0 )
SetGadgetItemText( #ListIcon_Var , Selection , TypTxt , 1 )
SetGadgetItemText( #ListIcon_Var , Selection , AlmTxt , 2 )
AddTypToList( TypTxt )
EndIf
EndIf
EndProcedure
Procedure Button_VarSupprimerOnClick ( EventType )
Selection = GetGadgetState( #ListIcon_Var )
If Selection > -1
RemoveGadgetItem( #ListIcon_Var , Selection )
EndIf
EndProcedure
; *****************
; Les procédures publics ( Methodes )
Procedure ListIcon_PubliqueSelect ( EventType )
Selection = GetGadgetState( #ListIcon_Publique )
If Selection > -1
SetGadgetText( #String_PubliqueNom , GetGadgetItemText( #ListIcon_Publique , Selection , 0 ) )
SetGadgetText( #Combo_PubliqueType , GetGadgetItemText( #ListIcon_Publique , Selection , 1 ) )
EndIf
EndProcedure
Procedure Button_PubliqueInsererOnClick ( EventType )
NomTxt = GetGadgetText( #String_PubliqueNom )
TypTxt = GetGadgetText( #Combo_PubliqueType )
If NomTxt <> ""
Selection = GetGadgetState( #ListIcon_Publique )
If Selection > -1
AddGadgetItem( #ListIcon_Publique , -1 , "" )
For i = CountGadgetItems( #ListIcon_Publique ) - 1 To Selection Step -1
SetGadgetItemText( #ListIcon_Publique , i + 1 , GetGadgetItemText( #ListIcon_Publique , i , 0 ) , 0 )
SetGadgetItemText( #ListIcon_Publique , i + 1 , GetGadgetItemText( #ListIcon_Publique , i , 1 ) , 1 )
Next
SetGadgetItemText( #ListIcon_Publique , Selection , NomTxt , 0 )
SetGadgetItemText( #ListIcon_Publique , Selection , TypTxt , 1 )
EndIf
EndIf
EndProcedure
Procedure Button_PubiqueAjouterOnClick ( EventType )
NomTxt = GetGadgetText( #String_PubliqueNom )
TypTxt = GetGadgetText( #Combo_PubliqueType )
If NomTxt <> ""
NomTxt + Chr( 10 ) + TypTxt
AddGadgetItem( #ListIcon_Publique , -1 , NomTxt )
EndIf
EndProcedure
Procedure Button_PubiqueModifierOnClick ( EventType )
Selection = GetGadgetState( #ListIcon_Publique )
If Selection > -1
NomTxt = GetGadgetText( #String_PubliqueNom )
TypTxt = GetGadgetText( #Combo_PubliqueType )
If NomTxt <> ""
SetGadgetItemText( #ListIcon_Publique , Selection , NomTxt , 0 )
SetGadgetItemText( #ListIcon_Publique , Selection , TypTxt , 1 )
EndIf
EndIf
EndProcedure
Procedure Button_PubiqueSupprimerOnClick ( EventType )
Selection = GetGadgetState( #ListIcon_Publique )
If Selection > -1
RemoveGadgetItem( #ListIcon_Publique , Selection )
EndIf
EndProcedure
; *****************
; Les procédures privées
Procedure ListIcon_PriveeSelect ( EventType )
Selection = GetGadgetState( #ListIcon_Privee )
If Selection > -1
SetGadgetText( #String_PriveeNom , GetGadgetItemText( #ListIcon_Privee , Selection , 0 ) )
SetGadgetText( #Combo_PriveeType , GetGadgetItemText( #ListIcon_Privee , Selection , 1 ) )
EndIf
EndProcedure
Procedure Button_PriveeInsererOnClick ( EventType )
NomTxt = GetGadgetText( #String_PriveeNom )
TypTxt = GetGadgetText( #Combo_PriveeType )
If NomTxt <> ""
Selection = GetGadgetState( #ListIcon_Privee )
If Selection > -1
AddGadgetItem( #ListIcon_Privee , -1 , "" ) : ; Debug CountGadgetItems( #ListIcon_Privee )
For i = CountGadgetItems( #ListIcon_Privee ) - 1 To Selection Step -1
SetGadgetItemText( #ListIcon_Privee , i + 1 , GetGadgetItemText( #ListIcon_Privee , i , 0 ) , 0 )
SetGadgetItemText( #ListIcon_Privee , i + 1 , GetGadgetItemText( #ListIcon_Privee , i , 1 ) , 1 )
Next
SetGadgetItemText( #ListIcon_Privee , Selection , NomTxt , 0 )
SetGadgetItemText( #ListIcon_Privee , Selection , TypTxt , 1 )
EndIf
EndIf
EndProcedure
Procedure Button_PriveeAjouterOnClick ( EventType )
NomTxt = GetGadgetText( #String_PriveeNom )
TypTxt = GetGadgetText( #Combo_PriveeType )
If NomTxt <> ""
If TypTxt <> ""
NomTxt + Chr( 10 ) + TypTxt
Else
NomTxt + Chr( 10 ) + ""
EndIf
AddGadgetItem( #ListIcon_Privee , -1 , NomTxt )
EndIf
EndProcedure
Procedure Button_PriveeModifierOnClick ( EventType )
Selection = GetGadgetState( #ListIcon_Privee )
If Selection > -1
NomTxt = GetGadgetText( #String_PriveeNom )
TypTxt = GetGadgetText( #Combo_PriveeType )
If NomTxt <> ""
SetGadgetItemText( #ListIcon_Privee , Selection , NomTxt , 0 )
SetGadgetItemText( #ListIcon_Privee , Selection , TypTxt , 1 )
EndIf
EndIf
EndProcedure
Procedure Button_PriveeSupprimerOnClick ( EventType )
Selection = GetGadgetState( #ListIcon_Privee )
If Selection > -1
RemoveGadgetItem( #ListIcon_Privee , Selection )
EndIf
EndProcedure
; *****************
Procedure Button_ExportSourceOnClick ( EventType )
FileName = GetGadgetText( #String_MonObjet )
NameObj = ReplaceString( FileName , " " , "_" )
;FichierParDefaut$ = CheminExport + FileName + ".Txt"
;Filtre$ = "Fichier export (*.Txt)|*.Txt"
;Filtre = 0 ; utiliser par défaut le premier des trois filtres possibles
;Fichier$ = SaveFileRequester("Fichier à exporter", FichierParDefaut$, Filtre$, Filtre)
;If Fichier$
;CheminExport = GetPathPart( Fichier$ )
; *********************************************************************
; ** Les lignes ci-dessus sont remplacées par les 2 lignes suivantes ( 20250322 )
CheminExport = PathRequester("Dossier pour l'exportation.", CheminExport)
If CheminExport
CreateFile ( #Fichier , CheminExport + "Export-" + FileName + ".txt" )
GenereInterface ( #Fichier )
GenereStructure ( #Fichier )
GenereMethode ( #Fichier )
GenereInit ( #Fichier ) ; Déplacé sous GenereMethode ( 20250322 )
GenereDataSection ( #Fichier )
GenereExemple ( #Fichier )
CloseFile ( #Fichier )
MessageRequester ( "Information" , "Le fichier à été exporté." , #PB_MessageRequester_Ok | #PB_MessageRequester_Info )
EndIf
EndProcedure
; *****************
Procedure Button_ChargeOnClick ( EventType )
FichierParDefaut$ = CheminLoad + "*.Sav"
Filtre$ = "Fichier de lecture (*.Sav)|*.Sav"
Filtre = 0 ; utiliser par défaut le premier des trois filtres possibles
Fichier$ = OpenFileRequester("Fichier à charger", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
CheminLoad = GetPathPart( Fichier$ )
CheminSave = CheminLoad
CheminExport = CheminLoad
ReadFile ( #Fichier , Fichier$ )
SetGadgetText ( #String_MonObjet , ReadString( #Fichier , #PB_Ascii ) )
ClearGadgetItems( #ListIcon_Var )
Compteur = Val( ReadString( #Fichier ) )
For i = 1 To Compteur
TxtA = ReadString( #Fichier )
TxtB = ReadString( #Fichier )
TxtC = ReadString( #Fichier )
AddGadgetItem( #ListIcon_Var , -1 , TxtA + Chr( 10 ) + TxtB + Chr( 10 ) + TxtC )
Next
ClearGadgetItems( #ListIcon_Publique )
Compteur = Val( ReadString( #Fichier ) )
For i = 1 To Compteur
TxtA = ReadString( #Fichier )
TxtB = ReadString( #Fichier )
AddGadgetItem( #ListIcon_Publique , -1 , TxtA + Chr( 10 ) + TxtB )
Next
ClearGadgetItems( #ListIcon_Privee )
Compteur = Val( ReadString( #Fichier ) )
For i = 1 To Compteur
TxtA = ReadString( #Fichier )
TxtB = ReadString( #Fichier )
AddGadgetItem( #ListIcon_Privee , -1 , TxtA + Chr( 10 ) + TxtB )
Next
ClearGadgetItems ( #Combo_VarType )
AddGadgetItem ( #Combo_VarType , -1 , "" )
AddGadgetItem ( #Combo_VarType , -1 , ".a" )
AddGadgetItem ( #Combo_VarType , -1 , ".b" )
AddGadgetItem ( #Combo_VarType , -1 , ".c" )
AddGadgetItem ( #Combo_VarType , -1 , ".u" )
AddGadgetItem ( #Combo_VarType , -1 , ".w" )
AddGadgetItem ( #Combo_VarType , -1 , ".l" )
AddGadgetItem ( #Combo_VarType , -1 , ".i" )
AddGadgetItem ( #Combo_VarType , -1 , ".f" )
AddGadgetItem ( #Combo_VarType , -1 , ".q" )
AddGadgetItem ( #Combo_VarType , -1 , ".d" )
AddGadgetItem ( #Combo_VarType , -1 , ".s" )
AddGadgetItem ( #Combo_VarType , -1 , ".s{ }" )
Compteur = Val( ReadString( #Fichier ) )
If Compteur <> 0
For i = 1 To Compteur
TxtA = ReadString( #Fichier )
AddGadgetItem( #Combo_VarType , -1 , TxtA )
Next
EndIf
CloseFile( #Fichier )
EndIf
EndProcedure
Procedure Button_SauveOnClick ( EventType )
FichierParDefaut$ = CheminSave + GetGadgetText( #String_MonObjet ) + ".Sav"
Filtre$ = "Fichier de sauvegarde (*.Sav)|*.Sav"
Filtre = 0 ; utiliser par défaut le premier des trois filtres possibles
Fichier$ = SaveFileRequester("Fichier à sauvegarder", FichierParDefaut$, Filtre$, Filtre)
If Fichier$
CheminSave = GetPathPart( Fichier$ )
CheminExport = CheminSave
CreateFile( #Fichier , Fichier$ )
WriteStringN( #Fichier , GetGadgetText( #String_MonObjet ) )
Compteur = CountGadgetItems( #ListIcon_Var )
WriteStringN( #Fichier , Str( Compteur ) )
For i = 0 To Compteur - 1
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Var , i , 0 ) )
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Var , i , 1 ) )
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Var , i , 2 ) )
Next
Compteur = CountGadgetItems( #ListIcon_Publique )
WriteStringN( #Fichier , Str( Compteur ) )
For i = 0 To Compteur - 1
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Publique , i , 0 ) )
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Publique , i , 1 ) )
Next
Compteur = CountGadgetItems( #ListIcon_Privee )
WriteStringN( #Fichier , Str( Compteur ) )
For i = 0 To Compteur - 1
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Privee , i , 0 ) )
WriteStringN( #Fichier , GetGadgetItemText( #ListIcon_Privee , i , 1 ) )
Next
Compteur = CountGadgetItems( #Combo_VarType )
WriteStringN( #Fichier , Str( Compteur - 13 ) )
For i = 13 To Compteur - 1
WriteStringN( #Fichier , GetGadgetItemText( #Combo_VarType , i ) )
Next
CloseFile( #Fichier )
MessageRequester( "Information" , "Le fichier à été sauvegardé." , #PB_MessageRequester_Ok | #PB_MessageRequester_Info )
EndIf
EndProcedure
Procedure Button_QuitterOnClick ( EventType )
FinDuProgramme = #True
EndProcedure
; *****************
; Creation des fenetres
OpenWin_0 ( )
; *****************
; Initialisation des fenetres
InitWin_0 ( )
; *****************
; La boucle principale
; événementielle automtiquement
While Not FinDuProgramme
Event = WaitWindowEvent()
Select EventWindow()
Case #Win_0
Win_0_Events (Event)
EndSelect
If Event = #PB_Event_CloseWindow
End
EndIf
Wend