ayant un peu de temps libre au bureau en ce moment, j'ai essayé de faire un petit programme
pour m'éviter d'ouvrir 50 fois les même dossier, pas très utiles mais ca apprends à programmer

je me suis basé sur le code de LSI du thread Photoshop like modifié pour le comprendre ^^.
cependant j'éprouve quelques difficultés avec, en autres, le MDI et comment l'insérer correctement
dans une procédure (ou l'inverse je ne sais pas trop ^^)
Code : Tout sélectionner
;->>>> Déclaration variables / constantes <<<<
#T_x_Window = 1280
#T_y_Window = 1024
EG_CT$ = "C:\Chantal Thomas\"
EG_Lov$ = "C:\Lovable\"
EG_Pret$ = "C:\Pret furnizori\"
#Flag = #PB_Window_MaximizeGadget | #PB_Window_Maximize | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget | #PB_Window_WindowCentered
Define.w
Enumeration
#Window
#Window_CT
#Window_Lov
#Window_Pret
#Editor_Menu = 10
#Editor_Menu_CT
#Editor_Menu_Lov
#Editor_Menu_Pret
#Editor_Menu_Help
#Editor_Menu_About
#Editor_Menu_Quit
#Editor_CT_Web = 100
#Editor_CT_ETG
#Editor_CT_ECG
#Editor_CT_ELG
#Editor_CT_ETG2
#Editor_CT_ECG2
#Editor_CT_ELG2
#Editor_Lov_Web = 200
#Editor_Lov_ETG
#Editor_Lov_ECG
#Editor_Lov_ELG
#Editor_Pret_ETG = 300
#Editor_Pret_ECG
#Editor_Pret_ELG
EndEnumeration
Define.l
;->>>> Procédures <<<<
Procedure Editor_CT()
MDIGadget(0, 0, 0, 0, 0, 1, 1, #PB_MDI_BorderLess | #PB_MDI_AutoSize)
AddGadgetItem(0, #Window_CT, "Chantal Thomass")
WebGadget(#Editor_CT_Web, 0, #T_y_Window/2, #T_x_Window, #T_y_Window/2, "www.google.fr")
ExplorerTreeGadget(#Editor_CT_ETG, 0, 0, #T_x_Window/5, #T_y_Window/2, EG_CT$)
ExplorerComboGadget(#Editor_CT_ECG, #T_x_Window/5, 0, (#T_x_Window/5)*4, 30, EG_CT$)
ExplorerListGadget(#Editor_CT_ELG, #T_x_Window/5, 30, (#T_x_Window/5)*4, #T_y_Window/2-30, EG_CT$)
EndProcedure
Procedure Editor_Lov()
MDIGadget(0, 0, 0, 0, 0, 1, 1, #PB_MDI_BorderLess | #PB_MDI_AutoSize)
AddGadgetItem(0, #Window_Lov, "Lovable")
WebGadget(#Editor_Lov_Web, 0, #T_y_Window/2, #T_x_Window, #T_y_Window/2, "www.google.fr")
ExplorerTreeGadget(#Editor_Lov_ETG, 0, 0, #T_x_Window/5, #T_y_Window/2, EG_Lov$)
ExplorerComboGadget(#Editor_Lov_ECG, #T_x_Window/5, 0, (#T_x_Window/5)*4, 30, EG_Lov$)
ExplorerListGadget(#Editor_Lov_ELG, #T_x_Window/5, 30, (#T_x_Window/5)*4, #T_y_Window/2-30, EG_Lov$)
EndProcedure
Procedure Editor_Pret()
MDIGadget(0, 0, 0, 0, 0, 1, 1, #PB_MDI_BorderLess | #PB_MDI_AutoSize)
AddGadgetItem(0, #Window_Pret, "Pret / MOQ / Lead Time")
ExplorerTreeGadget(#Editor_Pret_ETG, 0, 0, #T_x_Window/5, #T_y_Window/2, EG_Pret$)
ExplorerComboGadget(#Editor_Pret_ECG, #T_x_Window/5, 0, (#T_x_Window/5)*4, 30, EG_Pret$)
ExplorerListGadget(#Editor_Pret_ELG, #T_x_Window/5, 30, (#T_x_Window/5)*4, #T_y_Window/2-30, EG_Pret$)
EndProcedure
Procedure Open_Editor_Help()
MessageRequester("Help", "Help")
EndProcedure
Procedure Open_Editor_About()
MessageRequester("About", "About")
EndProcedure
;->>>> Initialisation programme <<<<
If OpenWindow(#Window, 0, 0, #T_x_Window, #T_y_Window, "Programme_main", #Flag)
CreateMenu(#Editor_Menu, WindowID(#Window))
MenuTitle("Fichier")
MenuItem(#Editor_Menu_CT, "Chantall Thomass" + Chr(9) + "Ctrl+1")
AddKeyboardShortcut(#Window, #PB_Shortcut_Control | #PB_Shortcut_1, #Editor_Menu_CT)
MenuItem(#Editor_Menu_Lov, "Lovable" + Chr(9) + "Ctrl+2")
AddKeyboardShortcut(#Window, #PB_Shortcut_Control | #PB_Shortcut_2, #Editor_Menu_Lov)
MenuItem(#Editor_Menu_Pret, "Pret / MOQ / Lead Time" + Chr(9) + "Ctrl+3")
AddKeyboardShortcut(#Window, #PB_Shortcut_Control | #PB_Shortcut_3, #Editor_Menu_Pret)
MenuBar()
MenuItem(#Editor_Menu_Quit, "Quitter" + Chr(9) + "Crtl+Q")
AddKeyboardShortcut(#Window, #PB_Shortcut_Control | #PB_Shortcut_Q, #Editor_Menu_Quit)
MenuTitle("Help")
MenuItem(#Editor_Menu_Help, "Help" + Chr(9) + "F1")
AddKeyboardShortcut(#Window, #PB_Shortcut_F1, #Editor_Menu_Help)
MenuBar()
MenuItem(#Editor_Menu_About, "About" + Chr(9) + "Ctrl+A")
AddKeyboardShortcut(#Window, #PB_Shortcut_Control | #PB_Shortcut_A, #Editor_Menu_About)
;->>>> Boucle WaitEvent() <<<<
Quit = 0
Repeat
Event = WaitWindowEvent()
Select EventWindow()
Case #Window_CT ; CT window event
Select Event
Case #PB_Event_CloseWindow
CloseWindow(#Window_CT)
EndSelect
Case #Window_Lov ; Lov window event
Select Event
Case #PB_Event_CloseWindow
CloseWindow(#Window_Lov)
EndSelect
Case #Window_Pret ; Pret window event
Select Event
Case #PB_Event_CloseWindow
CloseWindow(#Window_Pret)
EndSelect
Case #Window ; Main window event
Select Event
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Menu
Select EventMenu()
Case #Editor_Menu_CT
Editor_CT()
Case #Editor_Menu_Lov
Editor_Lov()
Case #Editor_Menu_Pret
Editor_Pret()
Case #Editor_Menu_Help
Open_Editor_Help()
Case #Editor_Menu_About
Open_Editor_About()
Case #Editor_Menu_Quit
CloseWindow(#Window)
;Quit = 1
EndSelect
EndSelect
EndSelect
Until Quit = 1
EndIf
J'ouvre le prog, une 1ere fenêtrefille, jusque la ok, mais si je ferme la fenêtrefille et essaye d'en ouvrir une autre plantage :
"There is no current GadgetList"
je suppose que le pb viens de l'intégration du MDIGadget dans la procédure mais si je ne l'y intègre pas lors de la demande d'ouverture d'un fichier, il me demande quelle fenêtre je veux ouvrir.