|When working with menus for PowerBuilder we quite often create a generic
set of MDI style menus which we enable and disable in our windows. This has an advantage
for the developer in that we only need a few common sets of menus and they are easier to
program. The user benefits because the menu layout is almost always the same and they get
used to the layout thus improving productivity and reducing training for new applications
that follow using the same code base.
However I have found that some users find the
context of the menu options confusing and there is a learning curve while the user gets to
know how these menu items work and what does what. We could help reduce this learning
curve by good use of tooltips and microhelp but as well as generic menu items we also have
generic microhelp that does little to help the user.
To reduce this problem I introduced context sensitive menus. All of the microhelp and
tooltips in the menu hae two special keywprds within the text. We use "entity"
and "row". We then have two functions in the menu ancestor that accept a
replacement for entity or row. We remember the previously used keyword and replace all
occurences of the old keyword with the new keyword. So instead of "create new
entity" we have "create new exepense report" or whatever the context of the
This may seem a little over the top for simple windows, but when we have more complex
windows where many different types of record can be created it really aids users new and
old. For example we have a window which is based on a treeview control. You can create 6
different records within the tree hierarchy. Instead of New entity or New row for the
tooltips and microhelp the user get the correct help text based on their location within
the hierarchy. For example New Proposal, New Schedule etc.
So by adding a few simple functions and calling them from the open event of each window
we can really improve the visual cues and feedback for the user, reduce the learning curve
and reduce errors and mistakes.