[lazarus] Attach menu to window

Mattias Gaertner nc-gaertnma at netcologne.de
Wed Oct 22 15:21:33 EDT 2003


On Wed, 22 Oct 2003 19:13:56 +0200
Micha Nelissen <M.Nelissen at student.tue.nl> wrote:

> Mattias Gaertner wrote:
> > On Wed, 22 Oct 2003 17:32:03 +0200
> > Micha Nelissen <M.Nelissen at student.tue.nl> wrote:
> > 
> > 
> >>Currently the menu is immediately attached to a window upon creation. 
> >>However, when creating all the entries this causes an huge delay, 
> >>because the window gets redrawn for every menu item change and add.
> >>
> >>Therefore I suggest introducing an LM_ATTACHMENUTOWINDOW or something 
> >>alike. Then all menu items are created first and when all is done a 
> >>message sent attaching the menu causing a redraw only once. The message 
> >>could be sent from TCustomForm.CreateWnd after FMenu.HandleNeeded for 
> >>example.
> >>
> >>Please, someone from the GTK team respond for comments :).
> > 
> > 
> > The gtk-interface does not care, if you first create the child handles
> > and then attach the menu item, or if you attach and then create the
> > child handles.
> > 
> > I think, it would be better if the childs are created first and then the
> > menu item is attached. This was the case some months ago, but for some
> > strange win32 reasons it was necessary to switch it.
> > 
> > Can we switch back.
> 
> Those 'strange' win32 reasons were strange to me then, and still are :(. 
> Too bad the writer doesn't respond or has left.
> 
> But: there 2 attach'types':
> 1) attach menuitem to another menuitem (submenus)
> 2) attach menuitem (mainmenu) to window
> 
> In the discussion from 1 july I was talking about the first. Now I am 
> talking about the second one :).
> 
> But since menu attachment to window is now done implicitly, and I 
> suggest to do it explicitly, no harm should result in this change. (If 
> the gtk now does it implicitly, and I send the message explicitly, but 
> it doesn't respond, there's no problem because it has already done it 
> implicitly).

Ok.
Side note: Try to avoid adding messages. They are hard to read/debug. The
existing ones are only for Delphi compatibility. If neccessary add a new
interface function.


Mattias



> 
> Is my post clearly enough written?







More information about the Lazarus mailing list