@dayvid
Je pense que tu manque de rigueur ! C'est une critique constructive que je te fais, ne le prend pas mal !
Comme le disais "pat" ton programme est très mal structuré et on ne sait pas ce que tu veux faire.
Aussi te faudrait-il un modèle. Comme il a été dit, je ne sais pas ce que tu veux faire, alors j'ai inventé.
Regard un peu le code et repaire les différentes sections. Attention ce code n'est qu'un exemple,
il n'est pas a prendre au pied de la lettre, juste pour comprendre les différentes parties.
Code : Tout sélectionner
Enumeration
;---------La fenétre principale
#f0
;---------Les gadget de la fenétre
#String1
#BoutonQuitter
;..... etc
;---------Mon menu
#f0Menu
#MenuNouveau:#MenuOuvrir:#MenuQuitter
;---------Ma barre d'état
#f0BarreEtat
EndEnumeration
;Section déclaration des structures
;Section déclaration des variables, listes... etc
EnableExplicit ; <======== Important
Global Quitter_f0.b
;Section déclaration des procédures
Declare FenetreCreation()
Declare FichierNouveau()
Declare FichierOuvrir()
Declare FenetreQuitter()
;====================================================================================================
;Début du programme proprement dit
;--------Lecture du fichier init
;--------Création et ouverture de la fenétre principale
FenetreCreation()
;--------Initialisation des gadgets, listes... etc
;Affichage de la fenétre principale
HideWindow(#f0, 0)
;Boucle principale du programme
Repeat
Select WaitWindowEvent()
Case #PB_Event_Menu
Select EventMenu()
Case #MenuNouveau : FichierNouveau()
Case #MenuOuvrir : FichierOuvrir()
; .....
Case #MenuQuitter : FenetreQuitter()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #BoutonQuitter : FenetreQuitter()
Case #String1
EndSelect
Case #PB_Event_CloseWindow : FenetreQuitter()
EndSelect
Until Quitter_f0 = 1
;Sortie du programme
End
;====================================================================================================
;Ici toutes les procédures...
Procedure FenetreCreation()
If OpenWindow(#f0, 377, 177, 600, 300, "Fenétre Principale)", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar|#PB_Window_Invisible)
;Mes gadgets
StringGadget( #String1, 50, 20, 100, 20, "")
ButtonGadget(#BoutonQuitter, 200, 180, 150, 50, "Quitter")
;..... et les autres
; Menu principal
If CreateMenu(#f0Menu, WindowID(#f0))
MenuTitle("Fichier")
MenuItem( #MenuNouveau, "N&ouveau"+ #TAB$ + "Alt+N")
MenuItem( #MenuOuvrir, "O&uvrir"+ #TAB$ + "Alt+O")
;.....
MenuBar()
;.....
MenuBar()
MenuItem( #MenuQuitter, "Q&uitter"+ #TAB$ + "Alt+Q")
;Les touches raccourcis clavier...
AddKeyboardShortcut(#f0, #PB_Shortcut_Alt | #PB_Shortcut_N, #MenuNouveau)
AddKeyboardShortcut(#f0, #PB_Shortcut_Alt | #PB_Shortcut_Q, #MenuQuitter)
;Grisés les menus
EndIf
; Barre d'état
If CreateStatusBar(#f0BarreEtat, WindowID(#f0))
AddStatusBarField(#PB_Ignore)
EndIf
Else ;Ici je suis en echec
;peu probable, mais...
MessageRequester("ERREUR", "Désolé, il est impossible d'ouvrir .... !",0)
EndIf
EndProcedure
Procedure FenetreQuitter()
MessageRequester("Quitter", "Ici confirmer la fin du programme", 0)
Quitter_f0 = 1
EndProcedure
Procedure FichierNouveau()
MessageRequester("Nouveau", "Ici le menu Nouveau", 0)
EndProcedure
Procedure FichierOuvrir()
MessageRequester("Ouvrir", "Ici le menu Ouvrir", 0)
EndProcedure
J'espéres que cela te donnera des idées, de comment organisé ton programme, a toi d'y mettre ce que tu veux !
A+