procedure PrintMenu(Menu: TMainMenu);
var
i: Integer;
F: TextFile;
procedure PrintMenuItem(M: TMenuItem);
var i: Integer;
begin
WriteLn(F, M.Caption);
for i := 0 to Pred(M.Count) do
PrintMenuItem(M.Items[i]);
end ;
begin
AssignFile(F, 'Menu.txt');
Rewrite(F);
try
for i := 0 to Pred(Menu.Items.Count) do
PrintMenuItem(Menu.Items[i]);
finally
CloseFile(F);
end ;
end ;
Así lo mandas a un fichero de texto, si en vez de AssignFile haces una AssignPrn lo imprimes en la impresora por defecto.