12 years ago, I did a project and wrote a blog post on enumerating the Delphi 8 IDE menu items.
Recently, I did a new one for the RAD Studio 10 Seattle IDE and RAD Studio 10.1 Berlin IDE. Why did I write one? It's to find out for myself what the IDE menus are, and then, extend it. Why? For too many years, the developers did not want to spend time to fix the issue where the View menu is way too long. I filed a bug, but I guess it was lost in time. A search for it found two similar bugs, QC 92248 and QC 101412.
The binaries are here on Embarcadero's CodeCentral.
Here's before and after for RS10 Seattle, followed by RS10.1 Berlin:
Before:
After:
class
procedure
TDiscoverMenus
.
SubMenus(
const
AMenuItem: TMenuItem);
var
LChildMenuItem: TMenuItem;
begin
SL
Add(Format(
'Name: %s Caption: %s'
, [AMenuItem
Name, AMenuItem
Caption]));
for
LChildMenuItem
in
AMenuItem
do
if
Count>
0
then
SubMenus(LChildMenuItem)
else
, [LChildMenuItem
Name, LChildMenuItem
end
;
EnumerateMenus;
LMainMenu: TMainMenu;
LINTAServices: INTAServices;
LMenuItem: TMenuItem;
LLine:
string
Supports(BorlandIDEServices, INTAServices, LINTAServices)
LMainMenu := LINTAServices
MainMenu;
SL := TStringList
Create;
try
LMenuItem
LMainMenu
Items
SubMenus(LMenuItem);
LLine
OutputDebugString(
PChar
(LLine));
finally
Free;
Here's my attempt:
stackoverflow.com/.../overly-tall-view-dropdown-menu-in-xe2