2024年3月20日发(作者:濮阳以云)
Delphi技巧大全--------------------感谢南山软件工作室 hpj168@
使用intraweb构建web数据库应用
如今web程序设计已经是非常流行的技术了,如asp,jsp之类,delphi对于web程序设计的支持也是非常
多的,如webbroker,websnap等等,但这些技术与传统的delphi编程有比较大的差别,尤其是websnap,
要搞懂他的体系结构与编程是比较复杂的。如果程序员能够以传统的方式编写web程序,那是一件非常有
益的事情,一方面节省了大量的学习时间,而且可以快速的开发出强劲的程序。如今,这种想法已经成为
现实,delphi7中捆绑的intraweb就是我们想使用delphi开发web程序的人梦寐以求的工具。
Intraweb的设计理念就是让DELPHI/C++ Builder 使用者延用原有的Windows 应用程序设计概念来设计
Web 应用程序,为了达到此目的,intraweb中使用一种他特定的form,并且设计一组与常见的delphi组件
相似的web组件----iw组件,这样,你可以像在普通的form上使用普通组件一样,在intraweb的form上使
用iw组件,包括属性和事件处理。设计完成后,IntraWeb会将你所设计的画面转化为网页呈现出来,使用
IntraWeb来开发Web 应用程序,你不需要懂得HTML、javascript、CSS 这些技术就可以轻易的建构出具
有友好界面及强大功能的Web 应用程序。而且也可以结合这些技术创建更加复杂功能和效果的程序。最妙
的是,采用Standard-alone Server模式( intraweb附带了一个webserver),开发时调试我们可以体验到他的
方便与强大,而且可以把你开发的应用程序和这个webserver结合在一起形成一个独立的windows程序,
在分发时就可以减少麻烦。运行这个程序后,他就变成了一个web服务器,其它机器就可以通过http来访
问这个程序。这在小型的局域网内是非常方便的。当然,intraweb也像websnap一样能创建ISAPI 或是
Apache DSO 格式。
下面就来开始我们的web数据库程序之旅吧!
我们的工作是实现web界面的客户数据管理。仍然沿用前文的数据库。Intraweb组件如图1。
从delphi7的ide界面依次单击:file-new-other出现一个向导表单,选择其中的intraweb页面,出现
如图2:单击其中的standalone application with data module 图标,出现一个对话框,填入我们要生成的项
目名称,之后生成在项目单元中生成如下代码:
program IWProject;
{PUBDIST}
uses
IWInitStandAlone,
ServerController in '' {IWServerController: TDataModule},
IWUnit1 in '' {formMain: TIWForm1},
DatamoduleUnit in '' {DataModule1: TDataModule};
{$R *.res}
begin
IWRun(TFormMain, TIWServerController);
第 1 页
Delphi技巧大全--------------------感谢南山软件工作室 hpj168@
end.
其中已经生成了一个数据模块,一个form页面,一个ServerController。
从view菜单中单击form,在出现的form中选择IWServerController,出现这个模块,可以看到它的属性
窗口图3,可以修改其中的属性如port设为555,如果不设定,运行后端口随机生成。其中也有一个
cominitialization属性:设为ciNormal可以就可以在数据模块中使用ado连接数据库,否则会出错。
接下来打开数据模块,添加SQLConnection1,SQLQuery1,DataSetProvider1,ClientDataSet1,如同在分
布式数据库系统中一样设置一些属性。包括相关的适合分布式数据库的一些改进。相应的代码请参考前文。
然后,打开formmain,出现一个空白的form,intraweb提供的iwdata组件中选择IWDBNavigator,提供
数据导航,选择IWDBEdit,提供数据编辑功能,选择IWLabel,提供标签功能,再添加一个数据源datasource1,
让它连接数据模块中的ClientDataSet1。
再增加几个iwbutton,增加一个iwdbgrid,界面变成如下图4:
如图普通的delphi程序一样,设置IWDBNavigator、IWDBEdit的数据库相关属性如数据源、数据字段。
稍微有点差别的是iwdbgrid1的属性设置,需要在其column属性中增加四个dbgridcloums,以便容纳相关
的数据字段,在属性中还可以设置不同行的颜色,如设置Rowalternatecolor为clinfoback。
设置form的oncreate事件:
procedure ormCreate(Sender: TObject);
begin
Datamodule1. :=true;
end;
到此为止,我们所用的全部是delphi的常规技术,现在运行项目,出现如图5,在‘run’菜单中单击
‘execute’,出现如下浏览器界面。您可以看到图6,一个web页面完整的显示出来了。到这里,你是否
觉得,采用intraweb制作web程序是一件多么简易的事情,完全不需html、asp、jsp的知识。
接下来我们再把程序细化一点,设置iwdbgrid1的rowlimit为一个数值,这样一次在网格上只显示限定
数目的记录,然后在前页、更多、后页按钮中添加相应的代码段如下:
procedure on1Click(Sender: TObject);
begin
tPacket;//取得下一批数据
end;
procedure on2Click(Sender: TObject);
begin
(-it);//游标向前移动网格限定数目的记录。
end;
第 2 页
2024年3月20日发(作者:濮阳以云)
Delphi技巧大全--------------------感谢南山软件工作室 hpj168@
使用intraweb构建web数据库应用
如今web程序设计已经是非常流行的技术了,如asp,jsp之类,delphi对于web程序设计的支持也是非常
多的,如webbroker,websnap等等,但这些技术与传统的delphi编程有比较大的差别,尤其是websnap,
要搞懂他的体系结构与编程是比较复杂的。如果程序员能够以传统的方式编写web程序,那是一件非常有
益的事情,一方面节省了大量的学习时间,而且可以快速的开发出强劲的程序。如今,这种想法已经成为
现实,delphi7中捆绑的intraweb就是我们想使用delphi开发web程序的人梦寐以求的工具。
Intraweb的设计理念就是让DELPHI/C++ Builder 使用者延用原有的Windows 应用程序设计概念来设计
Web 应用程序,为了达到此目的,intraweb中使用一种他特定的form,并且设计一组与常见的delphi组件
相似的web组件----iw组件,这样,你可以像在普通的form上使用普通组件一样,在intraweb的form上使
用iw组件,包括属性和事件处理。设计完成后,IntraWeb会将你所设计的画面转化为网页呈现出来,使用
IntraWeb来开发Web 应用程序,你不需要懂得HTML、javascript、CSS 这些技术就可以轻易的建构出具
有友好界面及强大功能的Web 应用程序。而且也可以结合这些技术创建更加复杂功能和效果的程序。最妙
的是,采用Standard-alone Server模式( intraweb附带了一个webserver),开发时调试我们可以体验到他的
方便与强大,而且可以把你开发的应用程序和这个webserver结合在一起形成一个独立的windows程序,
在分发时就可以减少麻烦。运行这个程序后,他就变成了一个web服务器,其它机器就可以通过http来访
问这个程序。这在小型的局域网内是非常方便的。当然,intraweb也像websnap一样能创建ISAPI 或是
Apache DSO 格式。
下面就来开始我们的web数据库程序之旅吧!
我们的工作是实现web界面的客户数据管理。仍然沿用前文的数据库。Intraweb组件如图1。
从delphi7的ide界面依次单击:file-new-other出现一个向导表单,选择其中的intraweb页面,出现
如图2:单击其中的standalone application with data module 图标,出现一个对话框,填入我们要生成的项
目名称,之后生成在项目单元中生成如下代码:
program IWProject;
{PUBDIST}
uses
IWInitStandAlone,
ServerController in '' {IWServerController: TDataModule},
IWUnit1 in '' {formMain: TIWForm1},
DatamoduleUnit in '' {DataModule1: TDataModule};
{$R *.res}
begin
IWRun(TFormMain, TIWServerController);
第 1 页
Delphi技巧大全--------------------感谢南山软件工作室 hpj168@
end.
其中已经生成了一个数据模块,一个form页面,一个ServerController。
从view菜单中单击form,在出现的form中选择IWServerController,出现这个模块,可以看到它的属性
窗口图3,可以修改其中的属性如port设为555,如果不设定,运行后端口随机生成。其中也有一个
cominitialization属性:设为ciNormal可以就可以在数据模块中使用ado连接数据库,否则会出错。
接下来打开数据模块,添加SQLConnection1,SQLQuery1,DataSetProvider1,ClientDataSet1,如同在分
布式数据库系统中一样设置一些属性。包括相关的适合分布式数据库的一些改进。相应的代码请参考前文。
然后,打开formmain,出现一个空白的form,intraweb提供的iwdata组件中选择IWDBNavigator,提供
数据导航,选择IWDBEdit,提供数据编辑功能,选择IWLabel,提供标签功能,再添加一个数据源datasource1,
让它连接数据模块中的ClientDataSet1。
再增加几个iwbutton,增加一个iwdbgrid,界面变成如下图4:
如图普通的delphi程序一样,设置IWDBNavigator、IWDBEdit的数据库相关属性如数据源、数据字段。
稍微有点差别的是iwdbgrid1的属性设置,需要在其column属性中增加四个dbgridcloums,以便容纳相关
的数据字段,在属性中还可以设置不同行的颜色,如设置Rowalternatecolor为clinfoback。
设置form的oncreate事件:
procedure ormCreate(Sender: TObject);
begin
Datamodule1. :=true;
end;
到此为止,我们所用的全部是delphi的常规技术,现在运行项目,出现如图5,在‘run’菜单中单击
‘execute’,出现如下浏览器界面。您可以看到图6,一个web页面完整的显示出来了。到这里,你是否
觉得,采用intraweb制作web程序是一件多么简易的事情,完全不需html、asp、jsp的知识。
接下来我们再把程序细化一点,设置iwdbgrid1的rowlimit为一个数值,这样一次在网格上只显示限定
数目的记录,然后在前页、更多、后页按钮中添加相应的代码段如下:
procedure on1Click(Sender: TObject);
begin
tPacket;//取得下一批数据
end;
procedure on2Click(Sender: TObject);
begin
(-it);//游标向前移动网格限定数目的记录。
end;
第 2 页