表单设计器保存并加载

时间:2010-09-20 04:43:56

标签: delphi delphi-7

我在delphi中创建了一个简单的表单设计器,在表单上拖放一个按钮并绘制它,但事情是我不能保存/加载这个项目,因为我不知道如何,无论如何,我可能是abel将它保存到.rc文件并从那里加载?

5 个答案:

答案 0 :(得分:3)

这取决于您对表单设计器的编程方式。在Delphi设计器中创建的表单中,所有组件(和子组件)都是从TForm.Components数组属性引用的。所有控件也在TForm.Controls数组属性中引用(如果删除容器控件,它的所有子控件也会被销毁)。

如果您已经遵循该模式,那么您所要做的就是监视TForm.Components数组的添加(可能使用覆盖的TForm.Notification方法)并使用此数据来构建持久表单的文件。

答案 1 :(得分:2)

VCL包含使用其内置DFM支持的方法。 the Delphi 2009 documentation for ObjectBinaryToText中有一个示例;我想这也适用于D7。而且IIRC在D5帮助中已经有ComponentToString的代码片段 - 搜索ObjectBinaryToText

答案 2 :(得分:1)

Delphi将表单布局存储在* .dfm文件中。您可以使用它的结构来保存项目。文件是文本的,人类可读。解析一行一行的文件并不困难。如果您需要更多帮助,请索取。

答案 3 :(得分:1)

你可以使用像delphi .DFM这样的东西。计算所有对象,然后读取它们的属性并将它们写入文件。示例代码:

For i:0 To Form1.ComponentsCount-1 Do Begin
  // Read Component Attributes And Write Them In Your Format
End;

答案 4 :(得分:0)

如果您只想保存设计器中设计的表单,请使用TFileStream之类的东西在用户保存时创建RC文件。使用自己的表单文件格式可能会更好,可以选择导出为RC文件,因为RC文件并不能用于存储您可能需要的任何设计时间信息。