如果我有一个包含框架的表单,并且我在frame.pas / dfm文件中编辑框架的布局,则表示有时(总是?)表单中的框架不会更新框架的新布局
到目前为止,我一直在从表单中删除框架,然后重新导入它。
但我记得有一种更有效的方法可以做到这一点。
如何?
答案 0 :(得分:2)
取消对插入的框架所做的更改:
对于框架上的控件:在这些控件的上下文菜单中使用 Revert to Inherited 。
对于框架本身:在表单的上下文菜单中使用查看为文本,并从DFM中删除框架的大小。
要将插入的帧更新为其声明:
我怀疑使用 View as Text 和 View as Form 进行快速切换,以强制创建表单的新实例。
答案 1 :(得分:1)
在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;