1. Louis Arena
  2. PowerBuilder
  3. Thursday, 2 May 2024 16:44 PM UTC

I am working on customizing a menu.  One of  the menu choices is called Favorites, and you can have up to 9 favorite items in this submenu.  I have a function that will rename the 9 items and make them visible (if you only have 6 then only 6 are visible).  Your favorite is stored in an array that contains the menu option you want to select.

For example, variable gm_menu_favs[1] = m_mdi_frame.m_report.m_all_sales.  The menu text Favorites\Favorite1 has been changed to Sales Report.

 

When Favorites\Sales Report is selected, in the clicked event I want to execute this script.

 

gm_menu_favs[1].triggerevent(Clicked!)

 

however this will not work as it says "Invalid operand type for Dot operator:string

 

Makes sense, but how do I create a menu object and identifiy the menu item I want to trigger?

 

this also does not work.

menu lm_this
lm_this = this

lm_this.gs_menu_favs[1].triggerevent(Clicked!)

 

Thanks

 

 

Louis Arena Accepted Answer Pending Moderation
  1. Friday, 3 May 2024 16:49 PM UTC
  2. PowerBuilder
  3. # 1

Roland, thanks for the link but this does not really address my needs.  In the example, they already defined what script would be run, which is just a message box.  I already in my app am able to make visible what "dymanic" menu I want to display and change the menu name.  What I am missing is being able to dynamically set the script within that menu.  

As stated above I have gm_menu_favs[1] = m_mdi_frame.m_report.m_all_sales

 

What I want the menu script in the clicked event to be is

gm_menu_fav[1].triggerevent(Clicked!)

 

but I am not allowed to.  So does anyone have an idea how to dynamically change the clicked event in a menu?

Comment
  1. Subrat patra
  2. Saturday, 17 August 2024 02:21 AM UTC
HI @Louis Aerna - Can you please suggest how did you able to add the submenu items to a particular menu item dynamically ? I also have same type of requirement.It will be very helpful if you suggest the approach.
  1. Helpful
  1. Suguna Thamaraiselvan
  2. Thursday, 10 October 2024 05:14 AM UTC
Hi @Rene,



In the above comment, you have mentioned as below.

What you can do: Use the Item property of a menu to get its child items. So you can find a item by its classname.



e.g.



FOR ll_menu = 1 TO UpperBound (lm_current.Item)



IF lm_current.Item [ll_menu].Classname() = "m_fav1" THEN



...



END IF



NEXT



May I know, where this code should be written?



Thanks.
  1. Helpful
  1. René Ullrich
  2. Thursday, 10 October 2024 05:33 AM UTC
Hi Suguna,

You can write it in a script where you want to call menu items code (as in the original question).
  1. Helpful
There are no comments made yet.
Roland Smith Accepted Answer Pending Moderation
  1. Thursday, 2 May 2024 17:41 PM UTC
  2. PowerBuilder
  3. # 2
Comment
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.
We use cookies which are necessary for the proper functioning of our websites. We also use cookies to analyze our traffic, improve your experience and provide social media features. If you continue to use this site, you consent to our use of cookies.