📄 savexml.pas
字号:
unit SaveXml;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, xmldom, XMLIntf, msxmldom, XMLDoc,VO;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
SaveDialogToXml: TSaveDialog;
XmlCompanyInfo: TXMLDocument;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
procedure saveAppConfig(XMLSavePath:String);
procedure BuildCompanyInfo();
public
{ Public declarations }
end;
var
Form1: TForm1;
MyCompayInfo:CompayInfo;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var XMLSavePath:String;
begin
{需要检查项目:
1、登录窗口是否保存
2、用户名框是否保存,用户名框是否属于登录窗口
3、密码框是否保存,密码框是否属于登录窗口
4、确定按钮是否保存,确定按钮是否属于登录窗口
}
SaveDialogToXML.DefaultExt := 'xml';
if SaveDialogToXML.Execute then
begin
XMLSavePath := SaveDialogToXML.FileName;
BuildCompanyInfo();
saveAppConfig(XMLSavePath);
MessageBox(handle, 'XML文件已经成功保存。',
'提示 ',MB_OK+MB_ICONINFORMATION);
end
else
exit;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.BuildCompanyInfo();
var ListUsers:TStringList;
zhangsan,lisi,wangwu:User;
begin
MyCompayInfo.Code := '001';
MyCompayInfo.Name := '火星矿石货运集团';
MyCompayInfo.Address := '第二宇宙银河太阳系地球村';
SetLength(MyCompayInfo.ListUsers,3);
zhangsan.ID := '001';
zhangsan.Name := '张三';
zhangsan.Sex := '男';
zhangsan.Department := '财务部';
zhangsan.Mobile := '1234567878';
zhangsan.Email := 'zhangsan@earth.com';
MyCompayInfo.ListUsers[0] := zhangsan;
lisi.ID := '002';
lisi.Name := '李四';
lisi.Sex := '男';
lisi.Department := '外务部';
lisi.Mobile := '1234567878';
lisi.Email := 'lisi@earth.com';
MyCompayInfo.ListUsers[1] := lisi;
wangwu.ID := '003';
wangwu.Name := '王五';
wangwu.Sex := '男';
wangwu.Department := '交通部';
wangwu.Mobile := '1234567878';
wangwu.Email := 'wangwu@earth.com';
MyCompayInfo.ListUsers[2] := wangwu;
end;
procedure TForm1.saveAppConfig(XMLSavePath:String);
var
XmlCompanyInfo :TXMLDocument;
RootNode,CompanyItemNode,UserNode,ItemChildNode : IXMLNode;
ValueNode:IXMLNode;
index : Integer;
IndexedUser:User;
begin
XmlCompanyInfo := TXMLDocument.Create(nil);
XmlCompanyInfo.Active := True;
XmlCompanyInfo.Encoding := 'GB2312';
//<MyCompayInfo>
RootNode:=XmlCompanyInfo.CreateNode('Company');
XmlCompanyInfo.DocumentElement := RootNode;
//<Code>
CompanyItemNode := XmlCompanyInfo.CreateNode('Code');
RootNode.ChildNodes.Add(CompanyItemNode);
CompanyItemNode.ChildNodes.Add(XmlCompanyInfo.CreateNode(MyCompayInfo.Code,ntText));
//<Name>
CompanyItemNode := XmlCompanyInfo.CreateNode('Name');
RootNode.ChildNodes.Add(CompanyItemNode);
CompanyItemNode.ChildNodes.Add(XmlCompanyInfo.CreateNode(MyCompayInfo.Name,ntText));
//<Address>
CompanyItemNode := XmlCompanyInfo.CreateNode('Address');
RootNode.ChildNodes.Add(CompanyItemNode);
CompanyItemNode.ChildNodes.Add(XmlCompanyInfo.CreateNode(MyCompayInfo.Address,ntText));
//<Users>
CompanyItemNode := XmlCompanyInfo.CreateNode('Users');
RootNode.ChildNodes.Add(CompanyItemNode);
for index := 0 to Length(MyCompayInfo.ListUsers)-1 do
begin
IndexedUser := MyCompayInfo.ListUsers[index];
//User
UserNode := XmlCompanyInfo.CreateNode('User');
CompanyItemNode.ChildNodes.Add(UserNode);
//User:<ID>
ItemChildNode := XmlCompanyInfo.CreateNode('ID');
UserNode.ChildNodes.Add(ItemChildNode);
ValueNode := XmlCompanyInfo.CreateNode(IndexedUser.ID,ntText);
ItemChildNode.ChildNodes.Add(ValueNode);
//User:<Name>
ItemChildNode := XmlCompanyInfo.CreateNode('Name');
UserNode.ChildNodes.Add(ItemChildNode);
ValueNode := XmlCompanyInfo.CreateNode(IndexedUser.Name,ntText);
ItemChildNode.ChildNodes.Add(ValueNode);
//User:<Sex>
ItemChildNode := XmlCompanyInfo.CreateNode('Sex');
UserNode.ChildNodes.Add(ItemChildNode);
ValueNode := XmlCompanyInfo.CreateNode(IndexedUser.Sex,ntText);
ItemChildNode.ChildNodes.Add(ValueNode);
//User:<Department>
ItemChildNode := XmlCompanyInfo.CreateNode('Department');
UserNode.ChildNodes.Add(ItemChildNode);
ValueNode := XmlCompanyInfo.CreateNode(IndexedUser.Department,ntText);
ItemChildNode.ChildNodes.Add(ValueNode);
//User:<Mobile>
ItemChildNode := XmlCompanyInfo.CreateNode('Mobile');
UserNode.ChildNodes.Add(ItemChildNode);
ValueNode := XmlCompanyInfo.CreateNode(IndexedUser.Mobile,ntText);
ItemChildNode.ChildNodes.Add(ValueNode);
//User:<Email>
ItemChildNode := XmlCompanyInfo.CreateNode('Email');
UserNode.ChildNodes.Add(ItemChildNode);
ValueNode := XmlCompanyInfo.CreateNode(IndexedUser.Email,ntText);
ItemChildNode.ChildNodes.Add(ValueNode);
end;
//保存
XmlCompanyInfo.SaveToFile(XMLSavePath);
XmlCompanyInfo.Active:=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -