Author: Jonas Bilinkevicius
How do I determine the width of a TMainMenu? I want to ensure that the form is not
resized to less than the width of the TMainMenu on the form.
Answer:
The menu bar will automatically wrap when that happens, so it is not a catastrophy.
There is a GetMenuItemRect API function you may want to try to get the information
you are after.
1 procedure TForm1.Button1Click(Sender: TObject);
2 var3 r: TRect;
4 i: Integer;
5 begin6 for i := 0 to mainmenu1.Items.Count - 1 do7 begin8 Win32Check(GetMenuItemrect(handle, mainmenu1.handle, i, r));
9 memo1.lines.add(format('Item %d: (%d, %d), (%d, %d)', [i, r.left, r.top,
10 r.right,
11 r.bottom]));
12 end;
13 end;
Note that the coordinates returned are screen-coordinates.