Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi-在第二个表单上复制tpanel和tbuttons_Delphi_Tpanel - Fatal编程技术网

Delphi-在第二个表单上复制tpanel和tbuttons

Delphi-在第二个表单上复制tpanel和tbuttons,delphi,tpanel,Delphi,Tpanel,在我的主窗体上,我有一个TPanel,其中包含用作工具栏的按钮。我想将此工具栏和按钮及其功能克隆/复制到另一个窗体 使用newmenu.merge(主菜单)克隆菜单很简单。这是复制菜单的绝佳捷径 但我不知道如何轻松复制我的工具栏,而不必手动分配事件,并保留一个计时器来比较和跟踪与主窗体上真正的主菜单相比哪些按钮被启用和禁用。根据应用程序正在执行的操作,主工具栏按钮将在不同时间启用和禁用 有什么想法吗?感谢您提供的任何建议或提示,以简化此操作。按钮是否附加到操作上?如果是这样,您可以使用TActi

在我的主窗体上,我有一个TPanel,其中包含用作工具栏的按钮。我想将此工具栏和按钮及其功能克隆/复制到另一个窗体

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

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


有什么想法吗?感谢您提供的任何建议或提示,以简化此操作。

按钮是否附加到操作上?如果是这样,您可以使用TActionList的OnUpdate事件来指定应该启用和不应该启用的内容。如果不是,转换为使用操作也不会太多

如果您将此路径转换为使用ActualLIST,请考虑将ActudiLIST放在数据单元中,其中不同的单元和表单可以引用它。

  • 复制控件

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

    如果您仍在进行设计,并且希望在两个窗体之间保持一致,那么请创建一个工具栏并在那里设计工具栏布局。然后在两个表单上都放置该框架的实例。对框架设计的更改将反映在表格中

    请参阅帮助

  • 确保两组按钮的启用一致

    创建一个数据模块。穿上它。为主窗体上的每个按钮添加一个操作。将事件处理程序分配给操作“
    OnUpdate
    事件”。在它们中,设置动作的已启用属性。最后,将每个按钮的
    操作
    属性指定给相应的操作对象。按钮将随操作自动启用和禁用。不需要定时器

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

    当您指定
    战术
    标题
    提示
    属性时,任何关联控件的相应属性也会更改。如果控件支持图像,则图像也是如此。操作也可以分配给菜单项

    请参阅帮助

  • 像工具栏一样工作

    就用吧。这就是它的目的

    或者,一旦你习惯了行动,在你的项目中加入一个,并与和一起使用。请参阅帮助

  • 可以使用剪贴板对象复制面板

    剪贴板.SetComponent(面板1)

    剪贴板.GetComponent(Form2,GroupBox1)

    谢谢,框架选项工作得很好。我以前没有使用过它们,我现有的方法是带有按钮的标准tpnael。