Plusieurs menu ?

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Plusieurs menu ?

Message par Stan_fr »

Bonsoir,

Je débute et je voudrais créer 2 menus, mais en fait seul le dernier menu créé apparaît ?

Code : Tout sélectionner

Enumeration menus
  #ME_GAM
  #ME_TON
EndEnumeration  

Enumeration Gamme
  #GA_CHR
  #GA_DIAMA
  #GA_DIAMI
  #GA_PMA 
  #GA_PMI 
EndEnumeration

Enumeration Tonalite
  #TO_C
  #TO_Db
  #TO_D
  #TO_Eb
  #TO_E
  #TO_F
  #TO_Gb
  #TO_G
  #TO_Ab
  #TO_A
  #TO_Bb
  #TO_B
EndEnumeration

If OpenWindow(0, 0, 0, #LA_FEN, #HA_FEN, "MUSIC BOX",  #PB_Window_ScreenCentered | #PB_Window_SystemMenu  )
  
  CreateMenu(#ME_GAM, WindowID(0))  
  
  MenuTitle("Gamme")
  MenuItem(#GA_CHR, "Chromatique")
  MenuItem(#GA_DIAMA, "Diatonique Majeure")
  MenuItem(#GA_DIAMI, "Diatonique Mineure")
  MenuItem(#GA_PMA, "Pentatonique Majeure")
  MenuItem(#GA_PMI , "Pentatonique Mineure")
  
  CreateMenu(#ME_TON, WindowID(0)) 
  MenuTitle("Tonalité")
  MenuItem(#TO_C, "C")
  MenuItem(#TO_Db, "C#")
  MenuItem(#TO_D, "D")
  MenuItem(#TO_Eb, "D#")
  MenuItem(#TO_E, "E")
  ; etc
  
Ça doit être tout bête, mais le problème c'est que les exemples que je trouve, n'utilisent qu'un menu.

Merci d'avance.
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Plusieurs menu ?

Message par case »

comme ca?

Code : Tout sélectionner

Enumeration menus
  #ME_GAM
  #ME_TON
EndEnumeration  

Enumeration Gamme
  #GA_CHR
  #GA_DIAMA
  #GA_DIAMI
  #GA_PMA 
  #GA_PMI 
EndEnumeration

Enumeration Tonalite
  #TO_C
  #TO_Db
  #TO_D
  #TO_Eb
  #TO_E
  #TO_F
  #TO_Gb
  #TO_G
  #TO_Ab
  #TO_A
  #TO_Bb
  #TO_B
EndEnumeration

If OpenWindow(0, 0, 0, 800, 600, "MUSIC BOX",  #PB_Window_ScreenCentered | #PB_Window_SystemMenu  )
  
  CreateMenu(#ME_GAM, WindowID(0))  
  
  MenuTitle("Gamme")
  MenuItem(#GA_CHR, "Chromatique")
  MenuItem(#GA_DIAMA, "Diatonique Majeure")
  MenuItem(#GA_DIAMI, "Diatonique Mineure")
  MenuItem(#GA_PMA, "Pentatonique Majeure")
  MenuItem(#GA_PMI , "Pentatonique Mineure")
  
  MenuTitle("Tonalité")
  MenuItem(#TO_C, "C")
  MenuItem(#TO_Db, "C#")
  MenuItem(#TO_D, "D")
  MenuItem(#TO_Eb, "D#")
  MenuItem(#TO_E, "E")
EndIf
Repeat
  ev=WaitWindowEvent()
Until ev=#PB_Event_CloseWindow
ImageImage
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Plusieurs menu ?

Message par Stan_fr »

case a écrit : dim. 12/mars/2023 17:56 comme ca?
Comme ça, ça marche !
Grand merci, pour la solution et la rapidité !

En fait il ne faut pas avoir 2 CreateMenu.
Ah ces débutants :roll:

Merci encore.
Stan_fr
Messages : 84
Inscription : mar. 07/mars/2023 20:01
Localisation : NANTES

Re: Plusieurs menu ?

Message par Stan_fr »

Par contre cela pose un problème pratique :

De ce que je comprends tous mes MenuItems sont identifiés séquentiellement dans l'ordre de leur déclaration, donc si on modifie un menu on a plus qu'à modifier tous les case n du Select de gestion des menus.

J'y ai pallié en utilisant

Code : Tout sélectionner

Enumeration Gamme
  #GA_CHR
  #GA_DIAMA
  #GA_DIAMI
  #GA_PMA 
  #GA_PMI 
EndEnumeration

Enumeration Tonalite #PB_Compiler_EnumerationValue
  #TO_C
  #TO_Db
  #TO_D
; etc..
...

Mais il y a peut-être une meilleure solution ?
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: Plusieurs menu ?

Message par case »

cette méthode est bonne :)
il y en a sans doute d'autres mais c'est déjà une des meilleures a mon avis :)
ImageImage
Répondre