delphi - 扩展delphi TEditCopy操作以将列表框项目也复制到剪贴板

标签 delphi clipboard taction

我有一个使用标准TAction实现的大多数功能的表单。我有一个菜单,一个工具栏和一些toobuttons。我仅使用TEditCopy和TEditPaste操作就实现了完全没有代码的剪贴板复制/粘贴。它在我拥有的TEdit和TMemo框中非常有效。

现在,我也希望它与TListBox一起使用。具体来说,我希望能够使用完全相同的菜单项,快捷键和工具按钮将选中的列表项复制到TListBox中。

因此,我相信我将需要扩展TEditCopy操作。但这对我来说似乎不是很直接。特别是,TEditAction检查集中控件是否为TCustomEdit控件,而不是TListBox。我有点担心这将是太多的工作。

显而易见的替代方法是,只需忽略标准操作,然后在通用TAction的OnExecute方法中实现复制到clipbard。

但是,在放弃之前,您有什么想法,提示或技巧可以帮助我扩展标准的TEditCopy操作吗?

最佳答案

您应该覆盖TAction的事件处理程序,或者创建一个新的后代,将TEditAction / TEditCopy中的代码与TListBox的额外处理结合起来。

操作的扩展点是设置OnExecute / OnUpdate事件处理程序,该操作在这里不起作用,因为它将禁用现有的TEdit处理。您可以继承TEditCopy并覆盖方法,但它的代码可能与直接继承于TAction的新类一样多。可能还有其他一些底层的hack会起作用,但我看不到,即使有,也保证它的可维护性要比记录的方法低。

关于delphi - 扩展delphi TEditCopy操作以将列表框项目也复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2652322/

相关文章:

sql-server - 在运行时连接 SQL 2008

html - 从 X 剪贴板获取 HTML 源代码或富文本

windows - 如何使用 Access/VBA 复制到剪贴板?

delphi - 对 "icon only"TButton 使用 TAction

delphi - 如何从对象自己的方法之一中释放对象?

delphi - 使用 TIdFTP Delphi 更改 FTP 中的文件权限

javascript - 跨浏览器 JS/jQuery 将当前 URL 复制到剪贴板

Delphi:如何停止 TAction 快捷键自动重复?

delphi - 如何在运行时访问 Delphi 2009 功能区按钮的选中属性?

Delphi 将备忘录输出转换为 edit.text