gpt4 book ai didi

Delphi - 第二种形式上的重复 tpanel 和 tbuttons

转载 作者:行者123 更新时间:2023-12-03 15:51:11 25 4
gpt4 key购买 nike

在我的主窗体上,我有一个 TPanel,其中包含充当工具栏的按钮。我想克隆/复制此工具栏和按钮及其功能到第二种形式。

使用 newmenu.merge(mainmenu) 克隆菜单很简单。这是复制 Tmainmenu 的绝佳捷径。

但是我不知道如何轻松复制我的工具栏,而无需手动分配事件并保留计时器来比较和跟踪与主窗体上的真实主菜单相比启用和禁用的按钮。根据应用程序正在执行的操作,主工具栏按钮将在不同时间启用和禁用。

这里有什么想法吗?感谢您提供任何建议或提示,让这一切变得更容易。

最佳答案

  • 复制控件

    在表单设计器中,选择面板并按 Ctrl+C 将其及其所有子项复制到剪贴板。转到第二个表单并按 Ctrl+V 进行粘贴。

    如果您仍在进行设计并希望在两种形式之间保持一致,请创建 TFrame并在那里设计你的工具栏布局。然后在两个表单上放置该框架的一个实例。框架设计的更改将反射(reflect)在表单中。

    参见Working with frames在帮助中。

  • 确保两组按钮一致启用

    创建数据模块。放一个TActionList在上面。为主窗体上的每个按钮添加一个操作。将事件处理程序分配给操作的 OnUpdate 事件。在其中设置操作 Enabled 属性。最后,分配每个按钮的 Action 属性以引用相应的操作对象。这些按钮将通过操作自动启用和禁用。无需计时器。

    此外,您还可以处理操作的 OnExecute 事件。清除每个按钮的 OnClick 属性,然后将按钮的 OnClick 代码移动到相应操作的 OnExecute 处理程序中。当您单击按钮时,即使 OnClick 属性为空,它也会自动被调用。

    当您分配 TActionCaptionHint 属性时,任何关联控件的相应属性也会发生变化。对于图像也是如此,如果控件支持它们。操作也可以分配给菜单项。

    参见Using action lists在帮助中。

  • 充当工具栏

    只需使用 TToolbar 。这就是它的用途。

    或者,一旦您习惯了操作,请输入 TActionManager在您的项目中并将其与 TActionToolbar 一起使用和TActionMainMenuBar 。请参阅Organizing actions for toolbars and menus在帮助中。

关于Delphi - 第二种形式上的重复 tpanel 和 tbuttons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2210999/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com