Page 1 of 1

How to change the items value in the main menu

Posted: Tue Mar 29, 2011 5:21 pm
by chrisjx2002
Hello,

I want to be able to change the values of the main menu items to support different languages.

If the user chooses the english one the menu will be in english. If he wants to change it, he can do it without reloading the program... It is simple to do that when defining the main menu but after I don't know how to change it. I don't find something like Windowsname.mainmenu.item1.value := 'xxx'. How to do that?

Regards

Re: How to change the items value in the main menu

Posted: Tue Mar 29, 2011 5:28 pm
by Rathinagiri
Hi,

You can call any number of times 'define main menu' sequence.

Please consider this example. Created from menu.1 sample.

Code: Select all

#include "hmg.ch"

Function main()

	DEFINE WINDOW Form_1 ;
		AT 0,0 ;
		WIDTH 400 ;
		HEIGHT 200 ;
		TITLE 'Menu Test' ;
		MAIN 

		DEFINE MAIN MENU

			POPUP 'File'

				ITEM 'Open' 		ACTION MsgInfo ('File:Open') IMAGE 'Check.Bmp' 
				ITEM 'Save' 		ACTION MsgInfo ('File:Save') IMAGE 'Free.Bmp'  
				ITEM 'Print' 		ACTION MsgInfo ('File:Print') IMAGE 'Info.Bmp'  
				ITEM 'Save As...' 	ACTION MsgInfo ('File:Save As')
				ITEM 'HMG Version' 	ACTION MsgInfo (HMGVersion())
				SEPARATOR
				ITEM 'Exit' 		ACTION MsgInfo ('File:Exit') IMAGE 'Exit.Bmp'

			END POPUP

			POPUP 'Test' 

				ITEM 'Item 1' 		ACTION MsgInfo ('Item 1')  name xxx
				ITEM 'Item 2' 		ACTION MsgInfo ('Item 2')

				POPUP 'Item 3' name test
					ITEM 'Item 3.1' 		ACTION MsgInfo ('Item 3.1') 
					ITEM 'Item 3.2' 		ACTION MsgInfo ('Item 3.2')

					POPUP 'Item 3.3'
						ITEM 'Item 3.3.1' 		ACTION MsgInfo ('Item 3.3.1')
						ITEM 'Item 3.3.2' 		ACTION MsgInfo ('Item 3.3.2')

						POPUP 'Item 3.3.3' 	

							ITEM 'Item 3.3.3.1' 		ACTION MsgInfo ('Item 3.3.3.1')
							ITEM 'Item 3.3.3.2' 		ACTION MsgInfo ('Item 3.3.3.2')
							ITEM 'Item 3.3.3.3' 		ACTION MsgInfo ('Item 3.3.3.3')
							ITEM 'Item 3.3.3.4' 		ACTION MsgInfo ('Item 3.3.3.4')
							ITEM 'Item 3.3.3.5' 		ACTION MsgInfo ('Item 3.3.3.5')
							ITEM 'Item 3.3.3.6' 		ACTION MsgInfo ('Item 3.3.3.6')  

						END POPUP

						ITEM 'Item 3.3.4' 		ACTION MsgInfo ('Item 3.3.4')

					END POPUP

				END POPUP

				ITEM 'Item 4' 		ACTION MsgInfo ('Item 4')

			END POPUP

			POPUP 'Help'

				ITEM 'About' 		ACTION MsgInfo ('Help:ABout')

			END POPUP

		END MENU

		DEFINE CONTEXT MENU
			ITEM 'Item 1' 		ACTION MsgInfo ('Item 1') 
			ITEM 'Item 2' 		ACTION MsgInfo ('Item 2')
			SEPARATOR
			ITEM 'Item 3' 		ACTION MsgInfo ('Item 3')
		END MENU
		
		define button new
		   row 100
		   col 10
		   caption 'Click'
		   action newmenu()
		end button

	END WINDOW

	CENTER WINDOW Form_1

	ACTIVATE WINDOW Form_1

Return


function newmenu
		DEFINE MAIN MENU of Form_1

			POPUP 'File1'

				ITEM 'Open1' 		ACTION MsgInfo ('File:Open') IMAGE 'Check.Bmp' 
				ITEM 'Save1' 		ACTION MsgInfo ('File:Save') IMAGE 'Free.Bmp'  
				ITEM 'Print1' 		ACTION MsgInfo ('File:Print') IMAGE 'Info.Bmp'  
				ITEM 'Save As...1' 	ACTION MsgInfo ('File:Save As')
				ITEM 'HMG Version1' 	ACTION MsgInfo (HMGVersion())
				SEPARATOR
				ITEM 'Exit1' 		ACTION MsgInfo ('File:Exit') IMAGE 'Exit.Bmp'

			END POPUP

			POPUP 'Test1' 

				ITEM 'Item 11' 		ACTION MsgInfo ('Item 1')  name xxx
				ITEM 'Item 21' 		ACTION MsgInfo ('Item 2')

				POPUP 'Item 31' name test
					ITEM 'Item 3.11' 		ACTION MsgInfo ('Item 3.1') 
					ITEM 'Item 3.21' 		ACTION MsgInfo ('Item 3.2')

					POPUP 'Item 3.31'
						ITEM 'Item 3.3.11' 		ACTION MsgInfo ('Item 3.3.1')
						ITEM 'Item 3.3.21' 		ACTION MsgInfo ('Item 3.3.2')

						POPUP 'Item 3.3.31' 	

							ITEM 'Item 3.3.3.11' 		ACTION MsgInfo ('Item 3.3.3.1')
							ITEM 'Item 3.3.3.21' 		ACTION MsgInfo ('Item 3.3.3.2')
							ITEM 'Item 3.3.3.31' 		ACTION MsgInfo ('Item 3.3.3.3')
							ITEM 'Item 3.3.3.41' 		ACTION MsgInfo ('Item 3.3.3.4')
							ITEM 'Item 3.3.3.51' 		ACTION MsgInfo ('Item 3.3.3.5')
							ITEM 'Item 3.3.3.61' 		ACTION MsgInfo ('Item 3.3.3.6')  

						END POPUP

						ITEM 'Item 3.3.41' 		ACTION MsgInfo ('Item 3.3.4')

					END POPUP

				END POPUP

				ITEM 'Item 41' 		ACTION MsgInfo ('Item 4')

			END POPUP

			POPUP 'Help1'

				ITEM 'About1' 		ACTION MsgInfo ('Help:ABout')

			END POPUP

		END MENU


return nil

Re: How to change the items value in the main menu

Posted: Thu Mar 31, 2011 3:58 pm
by chrisjx2002
Super! Thanks a lot. I didn't know that it was possible to redefine the main menu like this.

Regards

Re: How to change the items value in the main menu

Posted: Thu Mar 31, 2011 4:11 pm
by Rathinagiri
Me too!

You are welcome!