Delphi界面保存成XML文件
求助:我在Delphi环境下,设计了一个用户界面,从Object TreeView中可以看出,Delphi的界面元素是以树状结构来排列的,所以我要将设计好的界面保存成XML文件,之后需要的时候读入该XML文件,就解析成相对应的Form界面。请高手指教,网上的我找了,但是很多比较模糊,请大家帮忙,最好给个Demo,谢谢...
[解决办法]
就是用RTTI获取、设置控件的属性,你看一下RTTI怎么用就知道了。
[解决办法]
可以看看这个http://2ccc.com/article.asp?articleid=3541
[解决办法]
delphi的form界面可以直接保持为dfm格式的,也可以直接读取dfm格式
为什么一定要xml?
如果一定要为xml而xml,实际上dfm的文本格式转为xml也是很简单的,因为dfm的存储就是类似树的层次模式的
[解决办法]
要动太设置属性吗》?还是布局,直接编写代码,生成XML保存即可,相反拿到XML再动态创建控件即可。
[解决办法]
参考NativeXml当中的Example:ObjectToXml
[解决办法]
jvcl套件里有可以负责保存窗体的控件,还不错,可以存成xml、ini或者注册表都可以,只是xml的解码稍微有点儿弱,可以自己再改进一下
如果协议允许或者你压根不care协议的话,可以直接拿去用
[解决办法]
不知道下面的对你有没有帮助,你可以看看
- Delphi(Pascal) code
procedure SaveFormInfo(Form : TForm);var ms : TMemoryStream;begin ms := TMemoryStream.Create; try ms.WriteComponent(Form); ms.Position := 0; ms.SaveToFile('Form.data'); finally ms.Free; end;end;procedure CreateNewForm(Form: TForm);var ms : TMemoryStream; NewForm : TForm;begin ms := TMemoryStream.Create; try ms.Clear; ms.LoadFromFile('Form.data'); NewForm := TFormClass(Form.ClassType).CreateNew(Application); ms.ReadComponent(NewForm); NewForm.Left := Form.Left + 10; NewForm.Top := Form.Top + 10; NewForm.Show; finally ms.Free; end;end;procedure TForm1.Button1Click(Sender: TObject);begin CreateNewForm(Form1);end;