首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到TMainMenu的父母TMenuItem?

如何找到TMainMenu的父母TMenuItem?
EN

Stack Overflow用户
提问于 2018-06-04 09:23:47
回答 1查看 426关注 0票数 1

我有一个标准的TMainMenu,其中包含一些TMenuItem元素。如何动态地从其中之一找到父主菜单对象?

以下代码已经在第一个可执行行中带来编译器错误:

代码语言:javascript
复制
procedure TMenuItemHelper.AlignToRight;
const
  P3 = False;
var
  info: TMenuItemInfo;
  buffer: array[0..78] of WideChar;
  mainMenu: TMainMenu;
begin
  if Self.Parent is TMainMenu then
    mainMenu := (Self.Parent as TMainMenu)
  else
    raise EMenuItemHelper.Create(strExcMenuItemNotFirstLevel);

  info.cbSize := SizeOf(info);
  info.fMask := MIIM_TYPE;
  info.dwTypeData := buffer;
  info.cch := SizeOf(buffer);
  GetMenuItemInfo(mainMenu.Handle, Self.Command, P3, info);

  info.fType := info.fType or MFT_RIGHTJUSTIFY;
  SetMenuItemInfo(mainMenu.Handle, Self.Command, P3, info);
end;

错误消息如下:

代码语言:javascript
复制
[dcc32 Error] E2010 Incompatible types: 'TMenuItem' and 'TMainMenu'

我看不出任何相关的问题,但解决办法可能很简单。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-04 09:40:43

Victoria的解决方案

代码语言:javascript
复制
  if Self.GetParentMenu is TMainMenu then
    mainMenu := (Self.GetParentMenu as TMainMenu)
  else
    raise EMenuItemHelper.Create(strExcMenuItemParentIsNotAMainMenu);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50677287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档