Wrong item selected when using a scrolled popup menu
- Compiled with Delphi 10.4.1 (latest)
- Running on Windows 10 20H2 (latest)
- Show a themed context menu that contains more elements than possible to show on the screen at once
- Use the mouse to click the buttons to scroll up/down
- Click on an element
- Issue: A wrong element becomes executed/selected.
It seems like function TSysPopupStyleHook.GetItemClicked does not take the current offset into account. It works, when navigating the list with the keyboard only.
I also experience this issue. So I'm bumping this. Has anyone found a solution yet?
Hello, we worked around the issue with a detours hack and insert menu breaks and make long menus multicolumn... feels also better for me instead of scrolling through long popup's . If this is a solution for you I can post the code...
Thanks, @WeberAndre - this is actually a very good idea! I changed my code so that Break := mbBreak is set on every 20th or so TMenuItem. It's even more convenient to use now.
Disclaimer: I know that popup menus shouldn't have so many items anway, but this particular one is generated dynamically from the user's configuration/database, and we have a very small number of users which happen to have an unusually large number of items in their configuration.