向右移动菜单最后一项

2023-12-19

德尔福Xe2U4。主菜单项:文件、选项、帮助(名称:HelpMenuItem)。 2 个按钮。使用 StyleManager Xe2(在项目选项中启用 xe2 主题,并默认设置“Metro Blue”)。

Procedure TForm1.RightMenu; // Shift in the right of last item of the menu
var mii: TMenuItemInfo;MainMenu: hMenu; Buffer: array[0..79] of Char;
begin
  MainMenu := Self.Menu.Handle;
  mii.cbSize := SizeOf(mii) ;
  mii.fMask := MIIM_TYPE;
  mii.dwTypeData := Buffer;
  mii.cch := SizeOf(Buffer) ;
  GetMenuItemInfo(MainMenu, HelpMenuItem.Command, false, mii) ;
  mii.fType := mii.fType or MFT_RIGHTJUSTIFY;
  SetMenuItemInfo(MainMenu, HelpMenuItem.Command, false, mii) ;
end;

procedure TForm1.Metro1Click(Sender: TObject); // Not Work
begin
TStyleManager.TrySetStyle('Metro Blue'); // or any other
RightMenu;
end;

procedure TForm1.Windows1Click(Sender: TObject); // Work
begin
TStyleManager.TrySetStyle('Windows'); // standart theme
RightMenu;
end;

为什么在使用主题时不起作用? 是否有正常的方法来移动右侧菜单的最后一点,是否不应用依赖方案?


不幸的是,vcl 风格的钩子TMainMenu http://docwiki.embarcadero.com/Libraries/en/Vcl.Menus.TMainMenu没有实现绘制向右对齐的特定菜单项的代码。另外,这个vcl样式钩子(TMainMenuBarStyleHook)作为严格的私有成员嵌入在TFormStyleHook(表单的vcl样式钩子)中,因此这里没有太多修改的空间。修复此问题需要您为 TForms 和 TMainMenus 重写新的 vcl 样式挂钩。因此,如果您想这样做,您必须将 TFormStyleHook 类从 Vcl.Forms 单元复制到新单元,然后修复该单元的实现TFormStyleHook.TMainMenuBarStyleHook.DrawItemTFormStyleHook.TMainMenuBarStyleHook.Paint方法。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向右移动菜单最后一项 的相关文章

  • 是否有适用于 >= Delphi 2007 的 Delphi 混淆器

    我曾经使用 Pythia 来混淆我的 D6 程序 但 Pythia 似乎不再适用于我的 D2007 这是 Pythia 的链接 自 2007 年初以来没有更新 http www the interweb com serendipity in
  • 有什么办法可以将2个数组添加到一个数组中吗?

    有没有一种简单通用的方法可以将两个数组添加到一个数组中 在下面的情况下 不可能简单地使用C A B陈述 我想避免每次都为它制定算法 TPerson record Birthday Tdate Name Surname string end
  • 创建FileStream时如何处理异常

    我有一个这样的函数 我想重构它 function Myfunction sUrl sFile String Boolean var GetData TFileStream begin Result False if the line bel
  • 错误:使用 Microsoft WebService.dll 通过 Delphi7 规范化 XML

    我正在使用 Delphi7 修改旧项目以添加使用证书和签名 经过一番搜索后我发现XML 规范化函数 https learn microsoft com en us previous versions dd815358 v vs 85 但我无
  • 如何将我的图标添加到组件选项板页面中的组件? [复制]

    这个问题在这里已经有答案了 可能的重复 Delphi非可视化组件图像 https stackoverflow com questions 3319276 delphi non visual component image 如何将我的图标添加
  • 如何确保 FormClose 程序运行,无论程序如何退出?

    在 Delphi 7 中 我有一个 TMainForm FormClose 过程 旨在在程序退出时写出一些状态 这在手动关闭程序时效果很好 但是 我发现如果程序被 Windows 强制 退出 例如在 Windows 更新后需要重新启动 则不
  • Firemonkey 编辑/组合自动完成/打字时自动建议

    实施方式是什么Autocomplete or Autosuggest适用于 Windows Android 平台以及 MacOS 和 iOS 的 Delphi Firemonkey Example 当用户在 Google 搜索框中输入文本时
  • 开源 Delphi 包可使用哪些项目选项?

    我写了一些 Delphi 代码 想在 GitHub 上分享 所有代码都根据需要包含在运行时和设计时包中 每个项目有许多项目选项需要设置 输出目录 搜索路径 编译选项等 我设法找到了一些适合我的情况的默认选项 但阅读此处的其他问答很明显有多个
  • 如何根据输入的内容过滤组合框的内容?

    我们有一个包含 100 多个项目的组合框 当我们在组合框中输入字符时 我们想要过滤掉项目 例如 如果我们输入 ac 并单击下拉选项 那么我们希望它仅显示以 ac 开头的项目 我怎样才能做到这一点 也许您会更喜欢使用操作系统内置的自动完成功能
  • Async InputQuery 不处理“取消”按钮

    我正在使用一个简单的调用TDialogServiceAsync InputQuery 使用单个输入 它只是忽略了Cancel按钮和窗口的X关闭按钮 But the Ok按钮工作正常 这是我的代码 uses FMX DialogService
  • Delphi - 在修复 VCL 错误时,单元 x 是用不同版本的 x 编译的

    我正在使用 Delphi XE6 并在我的项目中使用 Datasnap 和 JSON 我想纠正 VCL 单元 System JSON pas 在 TJSONString ToString 函数中 中的一个错误 它应该转义反斜杠字符和引号 为
  • 德尔福数据结构

    我可能需要在 Delphi 中做一个项目 并且是该领域的初学者 目前 我正在网上搜索资源 但由于资源站点太少而感到困惑 首先 你能给我一些好的网站 其中包含我迄今为止错过的 Delphi 资源吗 我也在 Delphi 中搜索数据结构 想知道
  • 我如何在Delphi中处理事件?

    例如 我有一个程序 在单击 Button1 后执行某些操作 如果没有 Button1Click 中的代码 如何处理按钮的 onclick 事件 我需要为 Button1 动态添加事件 unit Unit1 interface uses Wi
  • TOpenDialog/NSOpenPanel 无法在沙盒 Delphi 应用程序中工作

    Firemonkey 应用程序中的 TOpenDialog 似乎存在问题 该应用程序已针对 Mac Appstore 进行沙箱处理 我使用XE3 但它也存在于XE2中 我其实在这里找到了一份QC报告 但仍然没有解决 http qc emba
  • 不断断点?如何去除它们?

    我下载了一个用Delphi 2009制作的项目 这也是我使用的 但是有一个断点我无法删除 如果我尝试删除它 它会在程序执行后再次执行 我在其他调试器中遇到了这样的事情 称为硬件断点 但这并不重要 如何删除断点 EDIT Article ht
  • Delphi 2009 IDE结构视图折叠功能

    现在有谁知道折叠 Delphi 2009 IDE 结构视图中的所有项目吗 我不知道折叠所有项目 这使我很难从视图中找到我的课程 Thanks 选择根节点 类 并按数字键盘上的 除号 那会让一切崩溃 然后按数字键盘上的 加号 键 第一级将展开
  • Delphi AES 库 (Rijndael) 使用 KAT Vectors 进行测试

    对于这两个库 Delphi 加密概要 v 5 2 http code google com p delphidec TurboPower 密码箱 v 2 07 http lockbox seanbdurkin id au tiki list
  • 如何在运行时(Delphi/Windows)程序中添加代码?

    我正在Windows XP Delphi 7上工作 我需要在正在运行的程序中添加一些过程 或函数 并且我不想在完成后再次重新编译它 我只有一个具有 5 个功能的主机应用程序来发送不同类型的警报 但是还有其他新的警报类型 所以我必须执行新的功
  • Mac 上的 Delphi - 可能吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我负责一个 Delphi Win32 项目管理应用程序 我刚刚完成了向 Delphi 2009 的迁移
  • 在 Delphi 中编程延迟的最佳方法是什么?

    我正在开发的 Delphi 应用程序必须延迟一秒 有时甚至两秒 我想使用最佳实践来对此延迟进行编程 在阅读 stackoverflow 上有关 Delphi Sleep 方法的条目时 我发现了以下两条评论 我遵循这样的格言 如果你觉得需要使

随机推荐

  • 如何检查 Makefile shell 调用的退出状态?

    我有一个 Makefile 它运行一个程序 成功时返回一个非零值 失败时返回另一个非零值 我知道我可以通过在命令前添加 来忽略退出状态 但这不起作用 因为我需要知道命令是否成功 您可以使用 shell 测试同一 Makefile 行上第二个
  • 错误:{ 错误:未捕获(承诺中):错误:无法匹配任何路由。 URL 段:“fontawesome-webfont.woff2”

    经过大量搜索后 我仍然无法修复我的 SSR 角度项目中的此错误 Node Express 服务器监听http 本地主机 4000 http localhost 4000出错了 出错了 请稍后重试 错误 错误 未捕获 在 Promise 错误
  • Facebook 点赞按钮每 1,000 个“点赞”就会更新一次值。它可以在每个“赞”时更新吗?

    我想您已经意识到 当您在网站上时 单击带有计数器的 喜欢 按钮 它通常会像第一个一样逐个更新 直到达到 1000 个 赞 然后开始每 1000 个 赞 更新一次 所以你可以看到 0 likes 1 like 2 likes 100 赞 99
  • 如何选择字段的默认值

    我似乎找不到或编写一个选择默认值的 sqlquery 而且我不认为我可以在 phpmyadmin 中生成它供我复制 我试图像它是一条记录一样选择它 但无济于事 defaultValue find mysql query SELECT gro
  • python 3、无头 RaspPi、python-evdev 无法使用语言环境 de_DE

    主要问题解决后尝试读取多个 HID 输入 https stackoverflow com questions 47227502 python 3 try to read from multiple hid inputs raspberry
  • ProgressRing 控制在哪里?

    我正在尝试编写一个基于 Windows Phone 8 SDK 的应用程序 我不断看到有人提到 ProgressRing 控件 但我在工具箱或 xaml 设计器中没有看到它 我该如何使用这个 ProgressRing 是 Win8 UI 控
  • plot.ly(dash_core_components) 滑块颜色变化

    我昨天第一次见到了plot ly dash 并创建了一些交互式情节 我添加了dash core components Slider 对象如下面的代码 dcc Slider id month slider min 0 max 12 value
  • 使用 Ext JS 的 MVC 架构中 store.load() 的动态代理 URL

    我想在加载商店之前 更改商店的代理 这种情况下的具体问题是我没有找到正确的时刻 何时加载 详细地 我通过创建 EXTJS4 架构定义的视图 控制器 模型和存储来创建 MVC 模型 该视图是一个网格面板 它在自己的定义语句中定义了存储 Ext
  • 首先加载低分辨率背景图像,然后加载高分辨率背景图像

    当我的网站输出到客户端时 我试图优化它的大小 缓存时我减少到 1 9MB 和 29KB 问题是第一次加载包含的图像对于移动设备来说非常未优化 它具有 1080p 分辨率 所以我正在寻找一种方法 允许我首先加载低分辨率版本 min bg jp
  • MVC 验证:在哪里验证?

    我们说控制器层的模型验证是验证我们要操作的所有数据的正确位置 在这种情况下 如果我们将 UI 更改为另一个 记住我们的层必须完全解耦 新的数据验证原则将执行 在这种情况下 我们所有的内部规则都可能被违反 您可能会说数据模型是单独的层 该层
  • 如果一条边权重减少,则更新最短路径距离矩阵

    我们得到一个加权图 G 及其最短路径距离的矩阵 delta 因此 delta i j 表示从 i 到 j 的最短路径的权重 i 和 j 是图的两个顶点 最初给出的 delta 包含最短路径的值 突然 边 E 的权重从 W 减少到 W 如何在
  • 如何在通用 T 上加 1? [复制]

    这个问题在这里已经有答案了 下面是一个通用类型Foo 我怎样才能正确实施addOne method struct Foo
  • DevIL 库文件和依赖项

    好吧 事情就是这样 我有我需要的所有 IL 文件 即 DevIL dll DevIL lib ILU dll ILU lib ILUT dll ILUT lib config h config h in devil cpp wrapper
  • 如何向 src 中的请求 url 添加标头?

    Example img src https example com getImage q img ref And the https example com getImage要求我们发送一些指定的标头以使请求有效 有可能吗 还是我必须使用a
  • 如何拦截对Hash类构造函数的调用?

    我想在调用类 Hash 的构造函数或初始化 Hash 对象时执行一个函数 我已经使用实现了我的目标 class Hash def initialize p Constructor call end end 当 Hash 对象初始化如下时 上
  • iPhone 应用程序启动关闭的分配时间

    iPhone 应用程序 以及可能的其他重要例程 的启动和关闭需要花费多少时间 我的 iPhone 上的程序曾被过于热心的操作系统杀死吗 如果应用程序在 20 秒内没有响应 iPhone 上的看门狗计时器将终止您的应用程序 请注意 Xcode
  • 如何制作 iPython/Jupyter 中内联的 NLTK draw() 树

    对于 iPython Jupyter 中的 Matplotlib 绘图 您可以使笔记本绘图内联 matplotlib inline 如何对树的 NLTK draw 做同样的事情 这是文档http www nltk org api nltk
  • C# 中的多线程目录循环

    我试图循环遍历所有文件和文件夹 并对具有特定扩展名的所有文件执行操作 这种方法工作得很好 但我想使它成为多线程 因为当完成数万个文件时 它真的很慢 我会使用多线程进行成像会加快速度 我只是不确定在这种情况下如何使用线程 doStuff从文件
  • 加载时间:使用 PHP 的 DOMDocument 还是使用正则表达式解析 HTML 更快?

    我正在将图像从我的 Flickr 帐户提取到我的网站 并且我使用了大约九行代码来创建一个用于提取图像的 preg match all 函数 我已经读过好几次了 通过 DOM 解析 HTML 会更好 就我个人而言 我发现通过 DOM 解析 H
  • 向右移动菜单最后一项

    德尔福Xe2U4 主菜单项 文件 选项 帮助 名称 HelpMenuItem 2 个按钮 使用 StyleManager Xe2 在项目选项中启用 xe2 主题 并默认设置 Metro Blue Procedure TForm1 Right