[Bug 1486] New: Dynamically created menus do not work in Delphi apps

Wine Bugs wine-bugs at winehq.com
Mon May 26 14:55:34 CDT 2003


http://bugs.winehq.com/show_bug.cgi?id=1486

           Summary: Dynamically created menus do not work in Delphi apps
           Product: Wine
           Version: 20030508
          Platform: Other
               URL: http://www.starsoft.fi/jarto/wine-menubug.tgz
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: P2
         Component: wine-misc
        AssignedTo: wine-bugs at winehq.com
        ReportedBy: jarto at starsoft.fi


If you create any menuitem in Delphi dynamically in TForm.Create, all menus stop
working in that form. Only the top menus are showed but they don't react to menu
clicks.

I made two small demos to demonstrate the bug. Both open a form with a menu and
a menuitem. MenuWorks.exe works, MenuBug.exe only shows the menu but refuses to
show the menuitem if clicked on the menu. The bug is reproducible always.

This bug is not only in the last wine build. I noticed it first October 2002 but
was able to find the reason and make a test app only now.

The tgz contains both executables and some traces created with --debugmsg
trace+menu and --debugmsg trace+win

Traces are run:

MenuBug: Start MenuBug.exe, click on the main menu and then close the form
MenuWorks: Start MenuWorks.exe, clikc on the main menu, select menuitem which
succesfully terminates the app.

The problems seems to be that MENU_FindItemByCoords doesn't find the Rect for
the top menu. My guess is that adding menus screwed them up somehow.

The bug exists in executables compiled with at least Delphi 5 and 7. I'm sure
that fixing this one lets us run many Delphi apps as they seem to work very well
with Wine otherwise.

-- 
Configure bugmail: http://bugs.winehq.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the wine-bugs mailing list