【问题标题】:Re-import frame into form将框架重新导入表单
【发布时间】:2011-10-21 22:16:59
【问题描述】:

如果我有一个包含框架的表单,并且我在 frame.pas/dfm 文件中编辑了框架的布局,那么有时(总是?)表单中的框架似乎不会随着框架的新布局而更新.

到目前为止,我一直在从表单中删除框架,然后重新导入它。

但我记得有一种更有效的方法可以做到这一点。

怎么做?

【问题讨论】:

标签: delphi


【解决方案1】:

要取消对插入帧所做的更改:

对于框架上的控件:在这些控件的上下文菜单中使用 Revert to Inherited

对于框架本身:在表单的上下文菜单中使用 View as Text 并从 DFM 中删除框架的大小。

要将插入的框架更新为其声明:

我怀疑使用 View as TextView as Form 快速切换以强制创建表单的新实例。

【讨论】:

    【解决方案2】:

    在 form1 中编辑框架后,您将无法自动获取原始 frame1.pas /dfm 中的更改。

    直到您在form1中编辑框架中的任何项目,form1.dfm中只有少量信息,因此使用frame.dfm中的所有属性,但在form1中编辑后form1.dfm将具有有关您所做更改的一些信息,因此它们将覆盖原始 frame1 属性所以现在您不能指望自动更新。

    如果不需要修改form1中的框架(你说你需要修改原来的那个,如果你同时修改(原来的和form1中的那个)那肯定会让你感到困惑。

    所以只对原来的做修改,确定后你可以对你正在使用的框架进行改变。(因为你可能需要在不同的情况下使用专门的框架)

    或者,如果您的框架的所有实例都相同,您可以在运行时调用该框架

    var
    myframe  :TFrame ;
    begin
      myframe := TFrame2.Create(self)    ;
      //better using a panel as a place holder
      myframe.Parent := Panel1 ;
      myframe.Show ;
     myframe.Left := 0 ;
     myframe.Top := 0 ;
    
    end;
    

    【讨论】:

    • 感谢您在运行时创建表单的想法。
    • 我终于发现我在主窗体上放置框架后设置对齐导致了一些问题。现在我在框架本身上设置对齐 - 回想起来很明显!
    猜你喜欢
    • 2012-12-03
    • 2020-03-04
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多