在 delphi 中查找子菜单项的父级

Find parent of the submenu items in delphi

我想在单击子菜单项时找出父项。例如在下图中,当我点击 L3B 时,结果应该是 "L1/L2/L3B".

您可以使用递归函数来获取菜单的完整路径。

function Form1.GetMenuPath(Menu: TMenuItem): String;
begin
  if (Menu.Parent <> nil) and (Menu.Parent.ClassType = TMenuItem) then
    Result := GetMenuPath(TMenuItem(Menu.Parent));
  if Result <> '' then
    Result := Result + ' > ';
  Result := Result + Menu.Caption;
end;

在您的 MenuItemClick 中调用函数

procedure Form1.L3B1Click(Sender: TObject);
begin
  ShowMessage(GetMenuPath(TMenuItem(Sender)));
end;