Another bug in Delphi PopupActionBar – Vertical menu shows no scrolling arrows

At last, perfect replacement for Outlook Express and Windows Live Mail is available, called OE Classic - Click here to download!

Today I encountered another problem with TPopupActionBar in Delphi / C++ Builder – vertical menu arrow was invisible. I was using it because it is apparently the best component to be used with ActionManager but as it seems, it is half-baked.

Here are bugs I discovered so far (with a little help from our customers):

  1. When menu is very tall, taller than screen height, PopupActionBar won’t show up/down arrows for scrolling content as first and last items, while regular PopupMenu does show them (thanks Carroll for notifying me).
  2. Furthermore, PopupActionBar is very slow and unresponsive (opening very tall menu takes visible amount of time – I did’t measure it but it looks like more than half a second) while the regular PopupMenu opens instantly. Selecting another item in PopupActionBar can sometimes be very laggy (sometimes old menu item that has subitems does not close as you move mouse over another item so you have to move around again until it updates).
  3. When menu item has subitems and it is disabled – it is still displayed as enabled during runtime.

Here is a simple C++ Builder code to generate very tall menu to demonstrate the above point 1:

for (int i=0; i<100; i++)
  {
  TMenuItem *mi = new TMenuItem(PopupActionBar1);
  mi->Name      = "TestName_"   +IntToStr(i);
  mi->Caption   = "TestCaption_"+IntToStr(i);
  PopupActionBar1->Items->Add(mi);
  }

And this picture show point 3 in action:

Delphi PopupActionBar Bug
Delphi PopupActionBar Bug

Obviously, we are moving away from PopupActionBar. And as it seems it is not the only thing related to ActionManager controls that has bugs – if I remember correctly – ActionToolBar also had some issues. So I might very well guess that ActionMainMenuBar might have similar problems with vertical arrows or speed.

ActionManager is very nice way to organize code but the components designed to work with it are half-finished and I wouldn’t recommend them.