How to determine the width of a TMainMenu (Views: 30)
Problem/Question/Abstract: 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. procedure TForm1.Button1Click(Sender: TObject); var r: TRect; i: Integer; begin for i := 0 to mainmenu1.Items.Count - 1 do begin Win32Check(GetMenuItemrect(handle, mainmenu1.handle, i, r)); memo1.lines.add(format('Item %d: (%d, %d), (%d, %d)', [i, r.left, r.top, r.right, r.bottom])); end; end; Note that the coordinates returned are screen-coordinates. |