Code : Tout sélectionner
; Modifier le titre d'un Sous menu
; Rien n'est expliquer dans l'aide j'ai touvé cette asture sur le forum anglais WIndow Only je penses
Enumeration
#Fr
#En
EndEnumeration
Global CurrentLg=0
Global Dim language.s(1,2)
Global SubMenuLanguage
language(#Fr,0)="Fichier"
language(#En,0)="File"
language(#Fr,1)="Préférences"
language(#En,1)="Preferences"
language(#Fr,2)="Langue"
language(#En,2)="Language"
Procedure Exit()
End
EndProcedure
Procedure EventMyMenu()
Select EventMenu()
Case #Fr
CurrentLg=#Fr
SetMenuItemState(0,#Fr,#True)
SetMenuItemState(0,#En,#False)
Case #En
CurrentLg=#En
SetMenuItemState(0,#Fr,#False)
SetMenuItemState(0,#En,#True)
EndSelect
SetMenuTitleText(0,0,language(CurrentLg,0))
SetMenuTitleText(0,1,language(CurrentLg,1))
; ICI on utilise la variable utilisée à la création du sous-menu pour changer son titre
SetMenuItemText(0,SubMenuLanguage,language(CurrentLg,2))
EndProcedure
Procedure Open()
OpenWindow(0,0,0,800,600,"Teste",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateMenu(0,WindowID(0))
MenuTitle(language(CurrentLg,0))
MenuTitle(language(CurrentLg,1))
; Important affecté le résusltat à une varaible pour le traitement ultérieur
SubMenuLanguage=OpenSubMenu(language(CurrentLg,2))
MenuItem(#Fr,"Francais")
MenuItem(#En,"English")
SetMenuItemState(0,#Fr,#True)
BindEvent(#PB_Event_CloseWindow,@Exit(),0)
BindEvent(#PB_Event_Menu,@EventMyMenu(),0)
EndProcedure
Open()
Repeat:WaitWindowEvent():ForEver