delphi – 解决TActionMainMenuBar绘图错误,其中项目未取消选择

delphi – 解决TActionMainMenuBar绘图错误,其中项目未取消选择,第1张

概述TActionMainMenuBar有一个绘制根元素没有子项的错误. 使用Delphi XE2 / w7-32bit ** 如何重现: 使用TActionMainMenuBar构建菜单,向其添加一些 *** 作: file | options | help - New - Open - Save -Exit 为所有 *** 作分配一个空方法 procedure TfrmMain.ActionExecu TActionMainMenubar有一个绘制根元素没有子项的错误.

使用Delphi XE2 / w7-32bit **

如何重现:
使用TActionMainMenubar构建菜单,向其添加一些 *** 作:

file  | options | help - New - Open - Save  -Exit

为所有 *** 作分配一个空方法

procedure TfrmMain.ActionExecute(Sender: TObject); begin // end;

现在运行应用程序并尝试单击选项或帮助元素.
现在单击表单,但菜单元素仍然按下!

有任何变通方法吗?

upd:看截图,菜单元素是down,但是鼠标光标不在菜单上,而autocheck是false,并且检查也是false.
  这里不是表单上的任何色彩映射,经理风格是平台默认

解决方法 这是我的解决方法:
像这样创建自定义类:

type  TFastthemedbutton = class(TthemedMenubutton)  protected    procedure DrawBackground(var PaintRect: TRect); overrIDe;end;

procedure TFastthemedbutton.DrawBackground(var PaintRect: TRect);const  MenuStates: array[Boolean {MouseInControl},Boolean {Selected}] of TthemedMenu =    ((tmMenubarItemnormal,tmMenubarItempushed),(tmMenubarItemHot,tmMenubarItempushed));var  BannerRect: TRect;  StartCol,EndCol: Tcolor;begin   Canvas.Brush.color := Actionbar.colorMap.color;   Canvas.Font := Actionbar.Font;   StyleServices.DrawElement(Canvas.Handle,StyleServices.GetElementDetails(MenuStates[MouseInControl,(State=bsDown)]),PaintRect);end;

现在你TActionMainMenubar.OnGetControlClass添加这个简单的代码,并设置为BUGgy actionclIEnts tag = -100

procedure TfrmActions.ActionMainMenubar1GetControlClass(Sender: TCustomActionbar; AnItem: TActionClIEnt; var ControlClass: TCustomActionControlClass);begin  if ControlClass.inheritsFrom(TCustomMenubutton) and then   begin    if (AnItem.Tag =-100) and (ControlClass = TthemedMenubutton) then      ControlClass := TFastthemedbutton;   end;end;

好吧,现在所有带有-100标签的根项目都按我们的意愿工作

总结

以上是内存溢出为你收集整理的delphi – 解决TActionMainMenuBar绘图错误,其中项目未取消选择全部内容,希望文章能够帮你解决delphi – 解决TActionMainMenuBar绘图错误,其中项目未取消选择所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1271990.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-08
下一篇2022-06-08

发表评论

登录后才能评论

评论列表(0条)

    保存