Page 1 sur 1

Plusieurs menu ?

Publié : dim. 12/mars/2023 17:41
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.

Re: Plusieurs menu ?

Publié : dim. 12/mars/2023 17:56
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

Re: Plusieurs menu ?

Publié : dim. 12/mars/2023 18:59
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.

Re: Plusieurs menu ?

Publié : lun. 13/mars/2023 0:15
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 ?

Re: Plusieurs menu ?

Publié : lun. 13/mars/2023 0:24
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 :)