Si tu n'as pas le fichier ou est le code de VB, ça ne sert à rien, ça ne fonctionne pas sans !
Code : Tout sélectionner
Global VersionProgramme$ = "1.00"
; Le code VB nettoyer.
Global NewList CodeVB.s()
; Le Nom des Gadgets dans l'ordre de lecture du code.
Global NewList NomGadgets.s()
; Identité des Gadgets, Nom et Type.
Global NewMap Gadgets.s()
; Famille de Code appartenant à chaque Gadgets, contient toutes leurs Caracteristiques.
Global NewMap CodeGadgets.s()
; Le code PB généré.
Global NewList CodePB.s()
; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
; Lecture du fichier de code.
Procedure.i LectureFichier()
ClearList(CodeVB.s())
Fichiers$ = OpenFileRequester("Sélectionnez un fichier","","Texte (.txt)|*.txt", 0)
If Fichiers$
If ReadFile(1, Fichiers$, #PB_Ascii) ; Si le fichier peut être lu , on continue...
While Eof(1) = 0 ; Boucle tant que la fin du fichier n'est pas atteinte. (Eof = 'End Of File')
AddElement(CodeVB.s())
CodeVB.s() = ReadString(1)
Wend
CloseFile(1) ; Ferme le fichier précédemment ouvert
Else ; Sinon ont affiche un message d'avertissement
MessageRequester("Information","Impossible de lire le fichier !")
ProcedureReturn 0
EndIf
Else
ProcedureReturn 0
EndIf
ProcedureReturn 1
EndProcedure
; Nettoie le code, enlève toutes les lignes inutile.
Procedure NettoyageCode()
; Recherche de: Private Sub InitializeComponent()
ForEach CodeVB.s()
; Ont efface toutes les lignes lus jusqu'à trouver "Private Sub InitializeComponent()" et le supprime également.
If Not FindString(CodeVB.s(), "Private Sub InitializeComponent()", 1, #PB_String_NoCase)
DeleteElement(CodeVB.s())
Else
DeleteElement(CodeVB.s())
Break
EndIf
Next
; Recherche de: End Sub
ForEach CodeVB.s()
; A partir de "End Sub", ont efface tous également.
If FindString(CodeVB.s(), "SuspendLayout()", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "Padding", 1, #PB_String_NoCase) Or
;FindString(CodeVB.s(), "ISupportInitialize", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "UseVisualStyleBackColor", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "PerformLayout()", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "ResumeLayout", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "TabIndex", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "AutoSize", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "TabStop", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "UseCompatibleStateImageBehavior", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "AutoScaleDimensions", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "AutoScaleMode", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "System.ComponentModel.ComponentResourceManager", 1, #PB_String_NoCase) Or
FindString(CodeVB.s(), "Me.components = New System.ComponentModel.Container()", 1, #PB_String_NoCase)
DeleteElement(CodeVB.s())
EndIf
Next
; Recherche de: End Sub
ForEach CodeVB.s()
; A partir de "End Sub", ont efface tous également.
If FindString(CodeVB.s(), "End Sub", 1, #PB_String_NoCase)
Delette.b = #True
EndIf
If Delette.b = #True
DeleteElement(CodeVB.s())
EndIf
Next
EndProcedure
; Etrait le Nom du Gadget des Gadgets.
Procedure.s ExtraireNomGadget(Ligne$)
Point.i = FindString(Ligne$, ".", 1, #PB_String_NoCase)
Espace.i = FindString(Ligne$, Chr(32), Point.i + 1, #PB_String_NoCase)
ProcedureReturn Mid(Ligne$, Point.i + 1, Espace.i - (Point.i + 1))
EndProcedure
; Recense et identifie le tyte de chaque Gadgets.
Procedure RecensementGadget()
ForEach CodeVB.s()
; Est ce la création d'un nouveau Gadget ?
If FindString(CodeVB.s(), "New System.Windows.Forms", 1, #PB_String_NoCase) And Not FindString(CodeVB.s(), "TabPage", 1, #PB_String_NoCase)
If FindString(CodeVB.s(), "Button()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "Button()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "CheckBox()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "CheckBox()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "TextBox()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "TextBox()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "DateTimePicker()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "DateTimePicker()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "Label()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "Label()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "LinkLabel()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "LinkLabel()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ListBox()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ListBox()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ListView()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ListView()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "NumericUpDown()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "NumericUpDown()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "PictureBox()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "PictureBox()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ProgressBar()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ProgressBar()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "RadioButton()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "RadioButton()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "RichTextBox()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "RichTextBox()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "TreeView()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "TreeView()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "WebBrowser()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "WebBrowser()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "GroupBox()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "GroupBox()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "SplitContainer()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "SplitContainer()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ContextMenuStrip(Me.components)", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ContextMenuStrip(Me.components)"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "MenuStrip()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "MenuStrip()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ToolStrip()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ToolStrip()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "StatusStrip()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "StatusStrip()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ToolStripMenuItem()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ToolStripMenuItem()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ToolStripSeparator()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ToolStripSeparator()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ToolStripButton()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ToolStripButton()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "ToolStripStatusLabel()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "ToolStripStatusLabel()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
ElseIf FindString(CodeVB.s(), "TabControl()", 1, #PB_String_NoCase)
AddMapElement(Gadgets.s(), ExtraireNomGadget(CodeVB.s()))
Gadgets.s() = "TabControl()"
AddElement(NomGadgets.s())
NomGadgets.s() = ExtraireNomGadget(CodeVB.s())
EndIf
ElseIf 1
Else
EndIf
Next
EndProcedure
; Regroupe le code appartenant à chaque Gadgets (Caracteristiques).
Procedure DecoupageCode()
ForEach CodeVB.s()
If FindString(CodeVB.s(), " '", 1, #PB_String_NoCase)
NumCom.i + 1
EndIf
If NumCom.i = 2 ; Nom du Gadget.
AddMapElement(CodeGadgets.s(), RemoveString(CodeVB.s(), " '", #PB_String_NoCase))
EndIf
If NumCom.i = 3
If Not FindString(CodeVB.s(), " '", 1, #PB_String_NoCase) And CodeVB.s() > ""
CodeGadgets.s() + Trim(CodeVB.s()) + Chr(13) + Chr(10)
EndIf
EndIf
If NumCom.i = 4
NumCom.i = 1
EndIf
Next
EndProcedure
; Extrait les éléments d'un menu.
Procedure ExtraireElementsMenu(Ligne$)
ElementMenu$ = Mid(Ligne$, FindString(Ligne$, "{", 1, #PB_String_NoCase) + 1, FindString(Ligne$, "}", FindString(Ligne$, "{", 1, #PB_String_NoCase) + 1, #PB_String_NoCase) - 1)
Debug ElementMenu$
EndProcedure
; ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Enumeration 1
#FenetreVBToPB
#Menu
#Menu_Ouvrir
#Menu_Quitter
#TreeGadget
EndEnumeration
; Ajoute le code Structuré dans le Tree.
Procedure AjoutCodeTree()
; {{{{{{{{{{{
;{ Ajout du code d'énumeration PB.
ClearList(CodePB.s())
AddElement(CodePB.s())
CodePB.s() = ""
AddElement(CodePB.s())
CodePB.s() = "; Code généré par VB To PB " + VersionProgramme$ + "."
AddElement(CodePB.s())
CodePB.s() = ""
AddElement(CodePB.s())
CodePB.s() = ""
AddElement(CodePB.s())
CodePB.s() = "; Enumeration"
AddElement(CodePB.s())
CodePB.s() = "Enumeration"
ForEach NomGadgets.s()
AddElement(CodePB.s())
CodePB.s() = "#" + NomGadgets.s()
Next
AddElement(CodePB.s())
CodePB.s() = "EndEnumeration"
;
; ForEach CodePB.s()
; Debug CodePB.s()
; Next
;
;}
; ; Enumère le code Nettoyé.
; ForEach CodeVB.s()
; Debug CodeVB.s()
; Next
;
; ; Enumère le Nom de chaque Gadgets dans l'ordre de lecture du code.
; ForEach NomGadgets.s()
; Debug NomGadgets.s()
; Next
;
; ; Enumère le Nom et Type de chaque Gadget.
; ForEach Gadgets.s()
; Debug MapKey(Gadgets.s()) + " = " + Gadgets.s()
; Next
; ; Enumère le code appartenant à chaque Gadget.
; ForEach CodeGadgets.s()
; ; If FindString(CodeGadgets.s(), "Me.ClientSize", 1, #PB_String_NoCase)
; ; Debug CodeGadgets.s()
; ; EndIf
;
; Debug MapKey(CodeGadgets.s()) + " = " + CodeGadgets.s()
; Debug "-------------------------------------------------------------------------------"
; Next
ClearGadgetItems(#TreeGadget)
AddGadgetItem(#TreeGadget, 0, "Fenêtre", 0, 0)
; Enumère le code appartenant à chaque Gadget.
ForEach CodeGadgets.s()
;{ Recherche et extraction des informations de la fenêtre.
If FindString(CodeGadgets.s(), "Me.ClientSize = New System.Drawing.Size(", 1, #PB_String_NoCase)
; Ajout d'un élément dans le Tree qui est le Nom de la fenêtre.
AddGadgetItem(#TreeGadget, -1, MapKey(CodeGadgets.s()), 0, 1)
; Par defaut, car n'existe pas.
AddGadgetItem(#TreeGadget, -1, "X: 0", 0, 2)
AddGadgetItem(#TreeGadget, -1, "Y: 0", 0, 2)
; Extraction de la taille de la fenêtre.
Taille$ = Mid(CodeGadgets.s(), FindString(CodeGadgets.s(), "(", 1, #PB_String_NoCase) + 1, FindString(CodeGadgets.s(), ")", 1, #PB_String_NoCase) - (FindString(CodeGadgets.s(), "(", 1, #PB_String_NoCase) + 1))
; Ajout d'un élément dans le Tree qui est la Largeur ainsi que la Hauteur de la fenêtre.
AddGadgetItem(#TreeGadget, -1, "Largeur: " + StringField(Taille$, 1, ", "), 0, 2)
AddGadgetItem(#TreeGadget, -1, "Hauteur: " + StringField(Taille$, 2, ", "), 0, 2)
; Parcour chaque Ligne de code dans la valeur de CodeGadgets.s()
; CodeGadgets.s() contient une clef qui est ne Nom du Gadget ainsi que toutes les lignes de ce celui-ci pour le personnaliser.
For Elements.i = 2 To CountString(CodeGadgets.s(), Chr(13) + Chr(10)) + 1
; Extraction de chaque ligne séparé par des Retour à la Ligne.
Ligne$ = StringField(CodeGadgets.s(), Elements.i, Chr(13) + Chr(10))
; Si le Texte du Gadget est trouvé.
If FindString(Ligne$, "Me.Text = ", 1, #PB_String_NoCase)
; Extraction du Texte du Gadget qui est le Titre de la fenêtre.
Titre$ = Mid(Ligne$, FindString(Ligne$, Chr(34), 1, #PB_String_NoCase), (FindString(Ligne$, Chr(34), FindString(Ligne$, Chr(34), 1, #PB_String_NoCase) + 1) - FindString(Ligne$, Chr(34), 1, #PB_String_NoCase)) + 1)
; Ajout d'un élément dans le Tree qui est le Titre de la fenêtre.
AddGadgetItem(#TreeGadget, -1, "Titre: " + Titre$, 0, 2)
EndIf
Next
EndIf
;}
;{ Recherche et extraction des informations du menu principal, du menu contextuel, de la barre d'outil et de la barre de statue, de la fenêtre.
If FindString(CodeGadgets.s(), ".Items.AddRange(New System.Windows.Forms.ToolStripItem() ", 1, #PB_String_NoCase)
Clef$ = MapKey(CodeGadgets.s())
; Recherche du type de l'objet.
TypeObjet$ = Gadgets.s(Clef$)
If TypeObjet$ = "MenuStrip()" ; Menu Fenêtre.
; --------------------------------------
; ICI EST LE PROBLEME !!!
; --------------------------------------
AddGadgetItem(#TreeGadget, -1, "Menu Fenêtre", 0, 2)
; Ajout d'un élément dans le Tree qui est le Nom du menu principal de la fenêtre.
AddGadgetItem(#TreeGadget, -1, MapKey(CodeGadgets.s()), 0, 3)
;
; ElseIf TypeObjet$ = "ToolStripMenuItem()" ; Element menu.
;
;
; ElseIf TypeObjet$ = "ToolStripSeparator()" ; Separateur de Menu.
ElseIf TypeObjet$ = "ContextMenuStrip(Me.components)" ; Menu Contextuel.
AddGadgetItem(#TreeGadget, -1, "Menu Contextuel", 0, 2)
; Ajout d'un élément dans le Tree qui est le Nom du menu contextuel.
AddGadgetItem(#TreeGadget, -1, MapKey(CodeGadgets.s()), 0, 3)
ElseIf TypeObjet$ = "ToolStrip()" ; Barre D'outils.
AddGadgetItem(#TreeGadget, -1, "Barre D'outils", 0, 2)
; Ajout d'un élément dans le Tree qui est le Nom de la barre d'outils de la fenêtre.
AddGadgetItem(#TreeGadget, -1, MapKey(CodeGadgets.s()), 0, 3)
;
ElseIf TypeObjet$ = "ToolStripButton()" ; Bouton de Barre D'outils.
ElseIf TypeObjet$ = "StatusStrip()" ; Barre de Statue.
AddGadgetItem(#TreeGadget, -1, "Barre de Statue", 0, 2)
; Ajout d'un élément dans le Tree qui est le Nom de la barre de statue de la fenêtre.
AddGadgetItem(#TreeGadget, -1, MapKey(CodeGadgets.s()), 0, 3)
;
ElseIf TypeObjet$ = "ToolStripStatusLabel()" ; Texte de Barre de Statue.
Debug 6
EndIf
EndIf
;}
Next
EndProcedure
Procedure FenetreVBToPB()
If OpenWindow(#FenetreVBToPB, 327, 177, 800, 600, "VB To PB - V1", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
WindowBounds(#FenetreVBToPB, 400, 300, #PB_Ignore, #PB_Ignore)
; Menu
If CreateImageMenu(#Menu, WindowID(#FenetreVBToPB), #PB_Menu_ModernLook)
MenuTitle("Fichier")
MenuItem(#Menu_Ouvrir, "Ouvrir" + Chr(9) + "Ctrl+O")
MenuBar()
MenuItem(#Menu_Quitter, "Quitter" + Chr(9) + "Ctrl+F")
EndIf
AddKeyboardShortcut(#FenetreVBToPB, #PB_Shortcut_Control | #PB_Shortcut_O, #Menu_Ouvrir)
AddKeyboardShortcut(#FenetreVBToPB, #PB_Shortcut_Control | #PB_Shortcut_F, #Menu_Quitter)
TreeGadget(#TreeGadget, 1, 0, 0, 0)
Repeat ; Départ des évènements de boucle.
Event = WaitWindowEvent(1) ; Cette ligne attend pendent (Minuteur) qu'un évènement soit recus par la fenêtre.
EventWindow = EventWindow() ; La fenêtre oû l'évènement c'est produit.
EventGadget = EventGadget() ; Pour savoir sur quel gadget c'est produis l'évènement.
EventMenu = EventMenu() ; Pour savoir sur quel menue c'est produis l'évènement.
EventType = EventType() ; Le type d'évènement qui c'est produis sur le gadget.
Select Event
Case 512 ; Déplacement de la souris sur la fenêtre.
Case 513 ; Bouton gauche appuyé avec la souris sur la fenêtre.
Case 514 ; Bouton gauche relâcher avec la souris sur la fenêtre.
Case 515 ; Double clique gauche avec la souris sur la fenêtre.
Case 516 ; Bouton droit appuyé avec la souris sur la fenêtre.
Case 517 ; Bouton droit relâcher avec la souris sur la fenêtre.
Case 518 ; Double clique droit avec la souris sur la fenêtre.
Case #PB_Event_Gadget
Select EventGadget
Case #TreeGadget
Select EventType
Case #PB_EventType_LeftClick
Debug GetGadgetItemAttribute(#TreeGadget, GetGadgetState(#TreeGadget), #PB_Tree_SubLevel)
Debug GetGadgetItemText(#TreeGadget, GetGadgetState(#TreeGadget), GetGadgetItemAttribute(#TreeGadget, GetGadgetState(#TreeGadget), #PB_Tree_SubLevel))
EndSelect
EndSelect
Case #PB_Event_Menu
Select EventMenu
Case #Menu_Ouvrir
; Lis et Nettoie le code, Recense tous les Gadgets ainsi que leurs Caractèristiques puis regroupe le code pour chaque Gadget.
If LectureFichier()
NettoyageCode()
RecensementGadget()
DecoupageCode()
AjoutCodeTree()
EndIf
Case #Menu_Quitter
Quitter = MessageRequester("Avertissement", " Vous êtes sur de vouloir quitter ?", 52)
If Quitter = 6 ; Oui
End
Else
Event = -1
EndIf
EndSelect
Case #PB_Event_SizeWindow
ResizeGadget(#TreeGadget, 1, 0, WindowWidth(#FenetreVBToPB) - 2, WindowHeight(#FenetreVBToPB) - 21)
Case #PB_Event_CloseWindow
Quitter = MessageRequester("Avertissement", " Vous êtes sur de vouloir quitter ?", 52)
If Quitter = 6 ; Oui
End
Else
Event = -1
EndIf
EndSelect
ForEver
EndIf
EndProcedure
FenetreVBToPB()