我在delphi中创建了一个简单的表单设计器,在表单上拖放一个按钮并绘制它,但事情是我不能保存/加载这个项目,因为我不知道如何,无论如何,我可能是abel将它保存到.rc文件并从那里加载?
答案 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文件并不能用于存储您可能需要的任何设计时间信息。