Delphi基于HTML页面和XML实现表单填写
2010-04-13 22:36
441 查看
请先看效果,为了达到这个效果,需要完成HTML界面、XML数据存储结构定义、JavaScript数据验证和保存、Delphi实现桌面程序调用4个方面。桌面程序也可以用VB、VC、.NET来实现,道理类似。
代码
1 unit Unit1;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, ComCtrls, OleCtrls, SHDocVw, Menus, xmldom, XMLIntf, msxmldom,
8 XMLDoc, StdCtrls, ExtCtrls, DB, DBClient, ImgList, MSHTML, Activex;
9
10 type
11 TForm1 = class(TForm)
12 XMLDocument1: TXMLDocument;
13 Panel2: TPanel;
14 WebBrowser1: TWebBrowser;
15 Panel3: TPanel;
16 BtnSave: TButton;
17 procedure FormShow(Sender: TObject);
18 procedure BtnSaveClick(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 private
21 { Private declarations }
22 public
23 { Public declarations }
24 RootTreeNode: TTreeNode;
25 end;
26
27 var
28 Form1: TForm1;
29
30 implementation
31
32 {$R *.dfm}
33
34 {加载页面}
35 procedure TForm1.FormShow(Sender: TObject);
36 var
37 starthtmpath: string;
38 begin
39 OleInitialize(nil);
40
41 starthtmpath := ExtractFilePath(Application.ExeName) + 'AddWeiPainForm\AddWeiPianForm.htm';
42 //加载初始化页面
43 WebBrowser1.Navigate(starthtmpath);
44 end;
45
46 {保存}
47 procedure TForm1.BtnSaveClick(Sender: TObject);
48 var
49 xmlstr, xmlpath, temppath: string;
50 fp: integer;
51 begin
52 try
53 temppath := ExtractFilePath(Application.ExeName) + 'temp.txt';
54 xmlstr := webbrowser1.OleObject.Document.parentWindow.SaveData();
55 xmlpath := extractfilepath(application.exename) + 'AddWeiPainForm\AddWeiPainForm.xml';
56 if xmlstr <>'' then
57 begin
58 if FileExists(temppath) then
59 begin
60 deletefile(temppath);
61 end;
62
63 //创建临时文本文件
64 fp:=filecreate(temppath);
65 xmlstr:= StringReplace(xmlstr, '<?xml version="1.0"?>', '<?xml version="1.0" encoding="GB2312" ?>', [rfReplaceAll]);
66 filewrite(fp, xmlstr[1], length(xmlstr));
67 fileclose(fp);
68
69 XMLDocument1 := TXMLDocument.Create(Self);
70 XMLDocument1.LoadFromFile(temppath);
71 XMLDocument1.Active := true;
72
73 //保存基本信息
74 if FileExists(xmlPath) then
75 begin
76 DeleteFile(xmlPath);
77 end;
78 XMLDocument1.SaveToFile(xmlpath);
79
80 XMLDocument1.Free();
81 XMLDocument1 := nil;
82 Application.MessageBox(Pchar('保存成功!'), '提示', MB_ICONINFORMATION);
83 end;
84 except
85 on e: Exception do
86 Application.MessageBox(Pchar('保存失败!' + e.Message), '提示', MB_ICONERROR);
87 end;
88 end;
89
90 procedure TForm1.FormDestroy(Sender: TObject);
91 begin
92 OleUninitialize();
93 end;
94
95 end.
5、写到这里就基本完成了,有兴趣的朋友可以到http://download.csdn.net/source/2236926下载全部源代码。
代码
1 unit Unit1;
2
3 interface
4
5 uses
6 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7 Dialogs, ComCtrls, OleCtrls, SHDocVw, Menus, xmldom, XMLIntf, msxmldom,
8 XMLDoc, StdCtrls, ExtCtrls, DB, DBClient, ImgList, MSHTML, Activex;
9
10 type
11 TForm1 = class(TForm)
12 XMLDocument1: TXMLDocument;
13 Panel2: TPanel;
14 WebBrowser1: TWebBrowser;
15 Panel3: TPanel;
16 BtnSave: TButton;
17 procedure FormShow(Sender: TObject);
18 procedure BtnSaveClick(Sender: TObject);
19 procedure FormDestroy(Sender: TObject);
20 private
21 { Private declarations }
22 public
23 { Public declarations }
24 RootTreeNode: TTreeNode;
25 end;
26
27 var
28 Form1: TForm1;
29
30 implementation
31
32 {$R *.dfm}
33
34 {加载页面}
35 procedure TForm1.FormShow(Sender: TObject);
36 var
37 starthtmpath: string;
38 begin
39 OleInitialize(nil);
40
41 starthtmpath := ExtractFilePath(Application.ExeName) + 'AddWeiPainForm\AddWeiPianForm.htm';
42 //加载初始化页面
43 WebBrowser1.Navigate(starthtmpath);
44 end;
45
46 {保存}
47 procedure TForm1.BtnSaveClick(Sender: TObject);
48 var
49 xmlstr, xmlpath, temppath: string;
50 fp: integer;
51 begin
52 try
53 temppath := ExtractFilePath(Application.ExeName) + 'temp.txt';
54 xmlstr := webbrowser1.OleObject.Document.parentWindow.SaveData();
55 xmlpath := extractfilepath(application.exename) + 'AddWeiPainForm\AddWeiPainForm.xml';
56 if xmlstr <>'' then
57 begin
58 if FileExists(temppath) then
59 begin
60 deletefile(temppath);
61 end;
62
63 //创建临时文本文件
64 fp:=filecreate(temppath);
65 xmlstr:= StringReplace(xmlstr, '<?xml version="1.0"?>', '<?xml version="1.0" encoding="GB2312" ?>', [rfReplaceAll]);
66 filewrite(fp, xmlstr[1], length(xmlstr));
67 fileclose(fp);
68
69 XMLDocument1 := TXMLDocument.Create(Self);
70 XMLDocument1.LoadFromFile(temppath);
71 XMLDocument1.Active := true;
72
73 //保存基本信息
74 if FileExists(xmlPath) then
75 begin
76 DeleteFile(xmlPath);
77 end;
78 XMLDocument1.SaveToFile(xmlpath);
79
80 XMLDocument1.Free();
81 XMLDocument1 := nil;
82 Application.MessageBox(Pchar('保存成功!'), '提示', MB_ICONINFORMATION);
83 end;
84 except
85 on e: Exception do
86 Application.MessageBox(Pchar('保存失败!' + e.Message), '提示', MB_ICONERROR);
87 end;
88 end;
89
90 procedure TForm1.FormDestroy(Sender: TObject);
91 begin
92 OleUninitialize();
93 end;
94
95 end.
5、写到这里就基本完成了,有兴趣的朋友可以到http://download.csdn.net/source/2236926下载全部源代码。
相关文章推荐
- 基于HTML实现表单提交后不刷新页面
- [javascript library]使用js实现页面刷新后依然保留表单填写的数据
- [原创]B/S页面From表单填写时用回车代替TAB的动态javascript实现方式
- python基于selenium+PhantomJS实现用提交表单,并点击按钮功能,获取返回的页面源码和ur等信息l。
- HTML中心在页面上弹出自定义表单层(实现可能拖累)
- 同一个页面内实现html+js表单提交输出功能
- delphi 基于模型驱动的表单拓展组件的设计与实现。
- html中提交表单并实现不跳转页面处理返回值
- html实现用户注册页面(表单+表格)——html小练习
- html实现同一个页面中多表单提交
- 国人编写的、超牛的、基于jQuery插件式、监听模式(无侵入)的html页面form表单通用验证框架
- 基于Bootstrap实现下图所示效果的页面,一个白底的带有两个菜单项、一个下拉菜单和一个登录表单的基本导航条
- javascript实现一个html提交的表单数据放到另一个html页面显示
- js技术实现html页面解析xml文档的级联下拉列表操作
- delphi实现自动填写表单和调用网页上的函数
- JQuery -AJAX- html中提交表单并实现不跳转页面处理返回值
- html中提交表单并实现不跳转页面处理返回值
- 遍历指定文件夹下所有的xml文件并动态生成HTML页面!
- 基于jquery的让页面控件不可用的实现代码