在这一讲中介绍应用Delphi开发动态网站所需要的软件工具和运行环境,并详细介绍IntraWeb的安装和配置,完成开发平台的搭建任务,最后通过一个动态网站流行的登录程序来说明一个网页页面的开发过程。
本
一、必备软件
开发平台要用到的软件主要有两个Borland公司的Delphi和Atozed公司的IntraWeb控件。
1.Delphi7.0简介
Delphi是著名的Borland公司开发的可视化软件开发工具。“真正的程序员用C,聪明的程序员用Delphi”,这句话是对Delphi最经典、最实在的描述。Delphi被称为第四代编程语言,它具有简单、高效、功能强大等特点。和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。
Delphi从诞生开始就一直是程序员喜爱的编程工具,尤其在数据库程序开发方面,它支持Access、Oracle、SQL Server等各种数据库类型。开发者可通过BDE、ADO和文件存取的方式与数据库相连,并开发出不同的数据库应用程序,还支持远程数据库操作语言SQL(Structure Query Language结构化查询语言)访问数据库。
Delphi不但能够帮助开发者快速创建Windows应用程序,还简化了Windows与浏览器、Web服务器、中间件以及后台数据库系统的集成。Delphi7.0是目前唯一支持所有工业标准(XML、SOAP、WSDL、XSL等)的开发工具,同时还支持基于Web服务的Microsoft.NET和SUN ONE体系。Delphi7.0中包含了IntraWeb、BizSnap、DataSnap和WebSnap等功能组件,使得Delphi在Web程序设计方面也独树一帜,功能强大,使用 Delphi就能设计出各种各样个性化的程序,尤其是第三方控件Web控件IntraWeb的引入,在动态网页和网站设计方面更是如虎添翼。在整个讲座中,采用Delphi7+IntraWeb7.0.21作为开发动态网站的基本工具,以Microsoft Access数据库为后台数据支持介绍动态网站的技术和方法。
2.IntraWeb 简介
IntraWeb是Atozed Sofware公司的一个开发Web应用程序的工具。利用IntraWeb,能够快速而简单地开发出Internet、Intranet和Extranet应用程序等,许多动态网页开发工具需要用户具备CGI编程、状态跟踪和复杂的客户端配置等知识,而IntraWeb封装了这些技术,开发者可以把精力集中到设计任务中,而不必关心客户端或服务器端的太多细节,只要使用Delphi提供的组件创建一个应用,然后将该应用在Web Services服务端注册,客户端就可以使用任何支持HTML语言的浏览器访问该Web页面,IntraWeb创建的应用程序没有HTML、CGI和JavaScript代码,所有的代码同创建普通的Delphi应用没有什么区别,因而效率极高,所设计出来的网页(网站)的保密性和安全性得到有效保证。
二、环境要求
开发环境主要有三方面的需求,一是为了程序调试和发布,在计算机上必须安装Windows Internet 信息服务IIS(Internet Information Server)4.0以上版本;二是要求浏览器必须支持HTML4.0,因为HTML4.0才支持JavaScript脚本资源;三是如果要在客户端使用Netscape4.0浏览器,就必须用IntraWeb4.0以上版本。
三、IntraWeb的安装
IntraWeb在Delphi的早期版本中已经存在,目前最新的版本是9.0.14。在Delphi7.0中有IntraWeb5.0.43版本。其他版本可到Atozed Software公司的网站上下载(http://www.atozedsoftsware.com)。这个网站同样是用IntraWeb开发的。
这里以Delphi7.0及IntraWeb7.0.21版本介绍其安装和设计过程。所以安装IntraWeb就有两个基本方法:
一是在安装Delphi7.0时直接将IntraWeb5.0.43安装到计算机中,安装Delphi7.0选择典型安装即可。
二是安装更新较高版本的IntraWeb,但重新安装前必须将原有的版本卸载。方法是选择Delphi菜单栏的Component→Install Package命令,在打开的对话框中会列出已经安装了的组件,如图1所示。选定IntraWeb5.0 Design Package for Delphi7项,单击Remove按钮并确认即卸载成功。

图1 卸载原有IntraWeb组件
四、IntraWeb组件
安装成功后,所有相关组件分门别类显示在IntraWeb组件板上,因为组件丰富,IntraWeb在组件面板上占据了多个标签页面,这些标签页面包括:IWStandard、IWData、IWClientSide和IWControl等,共有50余个组件。
1.标准控件
IntraWeb标准控件代表一个Web的GUI控件集。对这些控件的支持是基于现代Internet和Intranet操作环境定义的,如图2所示。现将主要的控件名称、含义、功能按顺序列表如表1所示。

图2 IntraWeb标准组件组件板
表1 IntraWeb标准组件及功能
编号 |
组件名称 |
含义及功能 |
1 |
TIWApplet |
允许在应用程序中嵌入Java程序片段,将参数传递到Java程序中加以控制。 |
2 |
TIWButton |
实现一个按钮功能的控件,用户可以点击按钮来管理或提交表单。 |
3 |
TIWCheckBox |
允许用户选择或者不选择的一个复选控件。 |
4 |
TIWComoBox |
实现一个可下拉列表框的控件,用户可以在下拉列表中进行选择。 |
5 |
TIWEdit |
用于取回用户输入文本的控件,也可以用户文本编辑。 |
6 |
TIWFile |
用于直接从浏览器向服务器上传文件。 |
7 |
TIWFlash |
用于直接从Flash播放。 |
8 |
TIWHRule |
用于在页面上绘制一条直线。 |
9 |
TIWIamge |
用于在页面上显示图像。还可将图像转换为JPEG格式,可用来表示动态图表或其他动、静态类型的图片。 |
10 |
TIWImageFile |
用于显示存储为外部文件的静态图形。 |
11 |
TIWList |
用于实现编号的HTML列表。 |
12 |
TIWLable |
为用户显示标签文本。 |
13 |
TIWListBox |
多行文字可滚动列表,从中用户可以选择和查看数据。 |
14 |
TIWLink |
用于在页面上实现超链接,并提供了一个鼠标Onclick事件。还可用来在应用程序中导航或者实现其他任何类型到导航功能。 |
15 |
TIWMemo |
用于显示多行文本且具有编辑功能的控件,允许用户输入一行或多行文本。 |
16 |
TIWMenu |
允许在应用程序中创建下拉菜单。 |
17 |
TIWRadioGroup |
用于表示一组单选按钮,用户只能从中选择一项。 |
18 |
TIWRectangle |
使用不同的文本和填充色显示矩形形状。 |
19 |
TIWText |
用于显示多行文本,但这些文本是只读的,也可以用来输入HTML格式。 |
20 |
TIWTimer |
在一个特定的时间间隔引发一个服务器事件。 |
21 |
TIWGrid |
允许用户在网页面上定制一个表格,以网格视图显示信息。 |
22 |
TIWtreeView |
在Web应用程序中生成一个树状视图。 |
23 |
TIWURL |
用于为外部URLs提供一个超链接。 |
24 |
TIWURLWindow |
|
25 |
TIWActiveX |
基于Com接口的IntraWeb ActiveX控件,将外部OCX压缩为Cab文件包,通过该控件来直接调用。 |
26 |
TIWMPEG |
媒体显示与播放控件,在该控件中可以控制和播放Megp类媒体文件。 |
27 |
TIWQuickTime |
媒体显示与播放控件,可直接播放和控制QuickTime媒体文件。 |
28 |
TIWCalendar |
IntraWeb的日历控件,在网页中以可视化方式显示日历表格。 |
29 |
TIWRadioButton |
显示在页面上的一个可选组件,其中定义了一个OnClick事件函数。 |
2.数据感知控件
与VCL中数据感知组件一样,在IWData标签页面的这些组件被设计Web的应用程序中管理数据,大部分用于与动态网页中数据库信息联系,如图3所示。详细名称及功能见表2所列。

图3 IntraWeb数据组件板
表2 IntraWeb数据组件及功能
编号 |
组件名称 |
含义及功能 |
1 |
TIWDBCheckBox |
数据感知的TIWCheckBox,可用于显示和编辑数据库布尔型数据。 |
2 |
TIWDBComoBox |
数据感知的TIWComoBox,可用于显示数据库的字段内容。 |
3 |
TIWDBEdit |
数据感知的TIWEdit,可用于显示和编辑数据库字段内容。 |
4 |
TIWDBGrid |
数据感知的TIWGgrid,以一种可配置的网格格式显示数据库数据。 |
5 |
TIWDBImage |
数据感知的TIWImage,显示库中以数据流字段。 |
6 |
TIWDBLabel |
数据感知的TIWLabel,多用于标识数据库文本标签。 |
7 |
TIWDBListBox |
数据感知的TIWListBox,用户表现多行数据。 |
8 |
IWDBLookupListBox |
实现一个查找条目的列表,其中填充的字段来自另一个数据集。 |
8 |
TIWDBLookupComBox |
实现一个查找下拉条目列表,其中填充的字段来自另一个数据集。 |
10 |
TIWDBFile |
数据感知版本的TIWFile,可用来将一个数据流字段与上传文件联系起来。 |
11 |
TIWDBMemo |
数据感知的TIWMemo,多用于显示数据库说明字段类型。 |
12 |
TIWDBNavigator |
数据感知控件,实现一组用于一个记录集中导航的按钮。 |
13 |
TIWDBText |
数据感知的TIWText控件,显示数据库中的多行文本。 |
3.客户端控件
正如客户端名称所隐含的那样,客户端控件能支持Web应用程序客户端的数据和导航需要,如图4所示,名称及功能见表3所列。

图4 IntraWeb客户组件板
表3 IntraWeb客户组件及功能
编号 |
组件名称 |
含义及功能 |
1 |
TIWCSLabel |
用于在客户端显示信息。 |
2 |
TIWCSNavigator |
一个客户端版本的标准导航条。 |
3 |
TIWDynamicChart |
允许我们以图表格式显示信息,并允许用户在客户端动态改变设置而无需进一步请求服务器。 |
4 |
TIWDynamicChartLegend |
用于与TIWDynamicChart结合以提供图例信息。 |
5 |
TIWDynGird |
允许我们改变信息并为用户动态显示该信息的动态网络。 |
4.服务器控制控件
提供对服务器数据的访问,如图5所示,名称及功能见表4所列。

图5 IntraWeb服务器组件板
表4 IntraWeb服务组件及功能
编号 |
组件名称 |
含义及功能 |
1 |
TIWTemplateProcessorHTML |
用于将HTML模版与IntraWeb窗体合并。模板允许我们和Web艺术家共同控制一个应用程序的外观。如果使用得当,模板也能够分离内容表达行为和实现的技术细节。模版也允许定制应用于多个应用程序。 |
2 |
TIWLayoutMgrForm |
允许我们对窗体上的可视对象实施更大控制的布局管理器。 |
3 |
TIWPageProducer |
允许我们使用页面模块中页面生成器的功能。 |
4 |
TIWModuleComtroller |
为页面模块担当服务器控制器。 |
5 |
TIWClienSideDataSet |
允许我们显示发送给客户(浏览器)并保持在客户端的数据。 |
6 |
TIWClienSideDataSetDBLink |
数据感知版的TIWClienSideDataSet。 |
7 |
TIWStandAloneServer |
允许我们控制独立应用程序的外观。 |
8 |
TIWLayoutMgrHTML |
允许我们通过与对象检视器的直接交互将窗体作为一个HTML页面进行编辑。 |
五、IntraWeb IDE构成及开发模式
有了IntraWeb,程序员就可以像开发普通应用程序一样开发Web应用程序,它为开发者设计良好的集成开发环境(IDE),只要按照桌面应用的习惯来开发Web应用就可以了,一些从前繁琐的Web程序的用户接口统统由IntraWeb来帮你解决。IntraWeb不同的开发模式就是为了适应不同程序需求,在开发向导的指引下一步步完成的。目前IntraWeb版本为设计人员提供了两种开发模式:Application应用模式和Page模式。
1.Application应用模式
在Delphi中选择File→New→Other菜单命令,打开IntraWeb选项卡界面,如图6所示。

图6 IntraWeb开发向导对话界面
这种模式开发实际上是一个完整的应用,每个应用程序有一个程序入口,页面与页面之间有严格的逻辑关系,不能单独访问某个页面,必须从入口页面开始访问;双击IntraWeb Application Wizard图标,出现的对话框如图7所示。
|