【发布时间】:2017-05-03 07:48:13
【问题描述】:
似乎是delphi 5之间的行为的变化(是,我知道它是非常旧的)和delphi 10.1当没有选择没有其PupupMenu属性集的TDBedit控件并且单击鼠标右键时。在 Delphi 5 TDBEdit 的父控件中显示 PopupMenu(当然假设它有一个),但在 Delphi 10.1 中显示了“标准”Windows 上下文菜单 ['Undo'、'Cut'、...'从右到左阅读顺序'等.].
如果没有明确设置一个 TDBEdit 控件的父控件的 PopupMenu,我如何让 Delphi 10.1 使用它。被迁移的应用程序有数百个表单,每个表单都包含数十个 TDBEdit 控件,并且必须将它们的每个 PopupMenu 属性显式设置为三个父控件的属性,这有点令人生畏!
【问题讨论】:
-
是的,这种行为变化可能有点痛苦。鉴于您拥有的表格数量,您是否正在寻找涉及某种运行时修复或 .DFM 文件的(半)自动更新的解决方案?就个人而言,我会考虑使用 GExpert 的
Grep Results实用程序中的 Replace 工具来更改 .DFM。 -
确实如此。时间就是生命。 Popup 属性和 OnContextPopup 事件文档提供了用于处理弹出菜单的自动或显式呈现的各种选项组合,但没有提及显示“windows”弹出菜单的默认行为(这取决于所使用的操作系统)。
-
除非我可以在 IDE 中找到一个项目\应用程序级别选项来抑制这种行为,否则我认为我将不得不“教育”用户选择和字段,并确保他们然后人民币点击外部防止弹出窗口的字段而不是父控件弹出窗口(设计为包含当前选定字段的选项)。
标签: delphi