Intraweb使用手册中文版.docx

上传人:b****6 文档编号:8118225 上传时间:2023-01-28 格式:DOCX 页数:18 大小:196.49KB
下载 相关 举报
Intraweb使用手册中文版.docx_第1页
第1页 / 共18页
Intraweb使用手册中文版.docx_第2页
第2页 / 共18页
Intraweb使用手册中文版.docx_第3页
第3页 / 共18页
Intraweb使用手册中文版.docx_第4页
第4页 / 共18页
Intraweb使用手册中文版.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

Intraweb使用手册中文版.docx

《Intraweb使用手册中文版.docx》由会员分享,可在线阅读,更多相关《Intraweb使用手册中文版.docx(18页珍藏版)》请在冰豆网上搜索。

Intraweb使用手册中文版.docx

Intraweb使用手册中文版

什么是IntraWeb

IntraWeb是一个创建基于Web应用程序的具有革命性意义的新方法,在早期版本的IntraWeb的用最简单的方法创建Web解决方案的基础上,IntraWeb扩展了它的技术,提供了一个杰出的工具,用来高速、简易地创建Internet,Intranet以及Extranet应用程序。

许多基于Web的开发工具都要求开发者有CGI脚本的知识,同时也要求开发者要有状态跟踪以及复杂的客户端配置。

IntraWeb避免了这些。

通过使用Delphi中的组件,简单的创建一个应用程序项目,之后,注册到服务器上,客户就可以利用兼容HTML4的任何一种浏览器来访问这个应用程序。

这些浏览器包括最新版的Netscape以及InternetExploer等等。

利用IntraWeb开发的Web应用程序在这些浏览器上都通过了测试。

利用IntraWeb开发,不需要写任何的HTML、CGI或是JavaScript代码,所有的代码都在Delphi中完成了。

为了让应用程序有更好的灵活性,利用IntraWeb开发的应用程序也可以以独立的可执行程序的方式像其它的桌面应用程序一样来运行,也提供了相应的调试能力。

IntraWeb是怎样工作的?

IntraWeb很像是普通的应用程序,唯一不同的是它的用户界面是用浏览器代替了通常的Windows界面,当把应用程序安装到Web服务器上之后,用户马上就可以通过它的网络地址来开启它,应用程序会马上建立使用者的用户信息,这样就可以避免丢失用户信息或者与其它的使用者发生使用混乱。

每一个用户的使用信息都会由程序自动创建和跟踪,并且对于开发者来说,是透明的。

其它的开发语言,像ISAPI,CGI,ASP处理这些问题的能力都不是很好。

IntraWeb设计成一套能创建基于Web的各种类型应用程序的开发工具,不论是一个简单的数据输入界面,投票或是一个更复杂的让已访问过的客户能顺利登录的应用程序,IntraWeb都能胜任。

IntraWeb用户手册

系统要求

客户要运行用IntraWeb开发的应用程序,唯一的要求就是要有一个能兼容HTML4.0浏览器,用IntraWeb及HTML4和JavaScript开发的程序都通过了广泛的测试,它支持Mozilla,Netscape6或更高版本,InternetExploer4.0或更高版本。

备注:

如果你想你的应用程序支持Netscape4,你就要使用我们继续给予支持的IntraWeb4的版本来开发。

HTML4

IntraWeb使用HTML4和样式单来完成页面元素及其它元素的布置,要使用模板或PageMode都需要使用到样式单。

JavaScript

JavaScript的使用可以提供更多的客户端特性,JavaScript也允许IntraWeb来控制浏览过程以及一个已经生成的页面,只有在Applicationmode,JavaScript才是必需的。

BrowserSpecificFeathers

尽宇航局HTML和JavaScript的标准已经制定了,但是在许多地方,不同的浏览器之间仍然存在许多差异,IntraWeb能自动调整这些差异,IntraWeb充当了一个HTML和JavaScript代码的生成器。

IntraWeb甚至动态地知道每一个浏览器在运行时所存在的每一个Bug.另一方面,IntraWeb输出给每一个浏览器的代码都是经过优化的,请查阅BrowserImplementations这一章节,获取更多的信息。

安装IntraWeb

安装

在Delphi的安装过程中,IntraWeb将会自动整合到Delphi中,三个新的包含IntraWeb组件Tab会在Delphi可视化组件工具中自动创建,其中一个包含了非数据库类型的组件,另外的两个包含一个数据库访问类型的组件和控制组件。

一个新的名为IntraWeb的Tab也会在Delphi的储存器中创建,所有的IntraWeb应用程序都将通过包含在这些Tab中的组件和模块来完成。

IntraWeb的安装会把一些文件拷贝到Windows\System目录以及所有Delphi环境变量中所需要的子目录下,同时,也创建了一个在程序组中通过开始菜单来访问的快捷方式,文档也会被放在这个程序组中。

卸载

要卸载IntraWeb,和其它的Windows应用程序一样,选择控制面板里的“添加/删除应用程序”来卸载IntraWeb。

安装LicenseKeys

对于注册用户,能过与试用版用户一样的方法来下载LicenseKeys,如果你安装的是试用版本,那么LicenseKeys的安装完全是为了能使用注册程序,这个程序可以通过IntraWeb程序组中的图标来运行。

重新考虑用户界面

许多我都尝试把他们的用户程序设计成像普通的Windows应用程序一样,如果你也是这样的话,你会发现你所设计的界面工作得并不是很好,想像一下,创建一个就像是一个DOS应用程序一样的用户界面,那将会是多麻烦的一件事,不要仅仅考虑在Web上的用户界面是怎么样的,你还要再想想在设计Web界面时所发现的局限性。

DBGrids就是一个例子,在一个普通的Delphi应用程序中,它被用于在一个Grid中显示成千上万的数据记录,在Web中,那将会是一个非常大的HTML文档,而且在用户加载的时候,是非常慢的。

当一个开发者意识到这个事实情况的时候,他们经常会使用“Next”和“Previous”按钮以便于让DBGrid能局部地显示,但是,这样做会让占用更多的服务器内存,消耗更多的服务器资源,同时,作为提供数据来源的数据库也会回为内存大量的占用而变得越来越慢,试着想想一些普通的Delphi应用程序的作法,重新考虑一下在Web上的用户界面。

当然,利用创建一个空的Grid同时用一个搜索功能来解决也是通常用来缓解上述问题的办法之一,通过让用户提供他所要筛选的数据参数,就能从成千上万的数据中筛选出十几个,或仅仅是在几百个记录,这不但是降低网络带宽占用的好办法,同时,它也可以说是提供了一个很好的用户界面,并且,同时也最小化地读取数据库。

允许用户输入搜索条件仍然有可能产生就像上面提到的得到成千上万记录的可能性,为了避免这种情况的产生,TIWDGBrid有一个RowLimit属性,它默认值是0,也就是说它默认是被禁止的。

你可以给它设置一个最大值,这样,不管查询出多少记录,返回给用户的记录数也不会超过你在RowLimit中所设置的最大值,你可以查阅其它的技术参考来证实这一点。

许多的搜索引擎也都限制了最大返回结果数,这不仅仅是为了节省网络带宽,在大多数情况下,数据的精确程度是伴随着数据量的减少而增加的,如果不是这样的话,那么返回给用户大量的记录,他们还是会想方设法地去筛选的。

如果你还是决定用Next/previous选项来使用“pagedgrid”技术以减少传递的数据数,你也可以通过设置TIWDBGrid的“StartFirst”属性成 “false”,把RowLimit属性设置一个最大值来决定一次传给用户的数据记录数,这样,在数据显示之前,你也可以通过Next/Previous来移动数据记录。

创建一个新的应用程序

写你的第一个应用程序

所有的IntraWeb应用程序都应该通过新建项目中的IntraWebTab来创建,点击File->New,选择IntraWebTab,选择StandAloneApplication,一个对话框会提示你输入你要把由Delphi自动创建的文件应该被放在计算机的什么地方。

这将为一个新的IntraWebStandAloneApplication创建一个框架,它把一些开发所需的文件复制到项目所在的文件夹,并且创建了一个模板文件以及一个空白的Form,尽管现在的项目已经可以编译和运行了,但是它实际上还不能做任何事情。

一个标准的调试FORM将显示一些关于IW和相关菜单项的信息,选择“运行菜单,运行这个程序,将自动打开一个浏览器显示一个空白的页面,这是因为主FORM中没有包括任何组件或功能项。

programIWProject;

uses

IWInitStandAlone,

ServerControllerin‘ServerController.pas’

{IWServerController:

TDataModule},

IWUnit1in‘IWUnit1.pas’{formMain:

TIWFormMain};

{$R*.res}

begin

IWRun(TFormMain,TIWServerController);

end.

上面的代码显示了这个项目文件中的内容,它包含一个用来运行程序的叫做IWRun的过程。

procedureIWRun(AMainFormClass:

TIWFormModuleClass;AServerControllerClass:

TIWServerControllerBaseClass);

IWRun接受两个必须的参数(指定MainFormClass和ServerControllerClass)和一个可选的参数(ServerType)。

IntraWeb用户手册

正如我们以前提到过的,一个新的项目是创建任何一个IntraWeb应用程序的开始,就像其它的Delphi项目一样,一个MainIntraWebFrom会被自动创建,并做为一个新程序的主界面,为了证明IW开发的强大能力及简易性,下面我们举一个小例子。

1.打开刚才创建的那个默认的IWForm(IWUnit1.Pas)。

2.分别在这个Form中放入IWButton,IWEdit,IWLabel。

3.把下面的代码放入IWButton的OnClick事件中:

procedureTIWFormModule.IWButton1Click(Sender:

TObject);

begin

IWLabel1.Caption:

=IWEdit1.Text;

end;

完成后,编绎运行程序,为了测试它,按F9键。

默认的浏览器将自动打开并显示主界面。

输入一些文字到文本框中,然后点击按钮,输出结果将显示到Label上。

虽然,我们这个例子不像发明火箭那样激动人心,但是,它确实表明我们全部使用标准的Delphi语句,并没有写一句HTML代码,我们之所以要选择这个例子,是因为它很简单,它证明我们用IntraWeb来开发Web应用程序确实就像我们用Delphi开发普通的应用程序一样,一样的方法,一样的属性,一样的事件,等等都可以用同样的方法。

然而在开发完善的数据库应用程序时,IntraWeb却更强大。

要获取更多的关于开发IntraWeb应用程序的例子,请访问

WorkingWithForms

在程序中,我们要介绍的是都要包含的单元-IntraWebForm,所有的IntraWebFrom都可以通过“File-New-IntraWebForm”来创建,所有在IntraWeb中使用的Form必须是一个专门的IntraWebForm,标准的DelphiForm是不能在IntraWeb应用程序中使用的,一个新的Unit创建时,可用的Form会显示在屏幕上,使用IntraWebForm和与使用普通的DelphiForm有一点不同,简单的说就是IntraWeb的Form要使用Show 方法来显示,换句话说,也就是在IntraWeb开发中,ShowModal方法是不被支持的。

更多的信息你可以参考Demos.

ImagesandGraphics

IntraWeb通过Templates来支持图像,包括TIWimage,TIWDBImageandTIWImageFile。

在IntraWeb中,你可以使用许多种方法来支持图像,同时,它们也有一些基本的方法。

Templates

在templates中使用图像也就是将图像插入到HTML中去,但是任何图像文件都必须在Files文件夹中,或者是一个标准的WEB服务器中。

TIWImage

TIWImage被使用在创建动态的图像上,每当要显示一个图片时,图片都会被转换成JPG格式,这样,图片是做为应用程序中功能的一部分来使用的。

你可以参考关于动态交互式图片的演示程序来获得更多的信息。

如果你使用的是静态的图片,你可以使用TIWImageFile.

TIWDBImage

TIWDBImage从数据库字段中自动把图片转换为JPG格式,它的使用就像普通的TDBImage一样,它提高了从数据库中把图片输出到浏览器上的开发效率。

TIWImageFile

TIWImageFile提供了从磁盘上的一个文件中显示图片的能力,因为它不会转换图片模式,TIWImageFile是一个比TIWImage更有效率的显示图片的组件,如果你仅仅是完整地显示一个静态的图片,你应该经常使用TIWImageFile。

TIWImageFile也提供了设计时显示图片的能力,你可以在设计Form的同时显示图片,然而,这个图片只是纯粹地显示,图片信息不会储存在Form中,只有当程序在运行时,图片才会被Load 到Form中。

Filename指定了要显示的图片的完整路径。

在运行时,路径将会被省略,只有文件名会被使用,所以,在选择时,要显示的图片应该在Files目录下。

GIFSupport

IntraWeb支持GIF的显示,然而,安装程序将没有默认的安装GIF的支持,就参考IntraWebFAQ来获得臬安装和使用GIF文件的信息。

其它的文件

其它的文件,例如图片、下载的文件等等都可以通过指定主程序所在的相对路径来访问,创建一个Files目录,把所有的HTML对象都放到这个目录下,在HTML页面中,你就可以通过使用imgSrc=’’../files/image.jpg’’这样的形式来访问。

请确认,在浏览器中你要使用/而不是\来访问,在IE中,这种错误会自动被改正,但是在其它的浏览器中却不会被自动改正。

通常,这种方法不仅限于对图片的显示,也可以用在其它所有的文件格式中。

访问的文件都会被浏览器缓存,如果你希望创建一个不会被浏览器缓存的文件链接,那么,你可以用../filesnc/来代替../files/

文件将会从一个同样的目录来访问,但是不会被浏览器缓存。

其它的FormProperties

请仔细地查看那些经常会被开发都忽略的Form的属性,这些属性可以控制例如HTML的输入及其它更多的。

ServerController

每一个应用程序都包含一个ServerController单元,这个单元包含了会影响应用程序在全局范围中的动作及行为的属性,它也包含了能在应用程序中定义的事件。

DataModules

如果你要使用DataModules,请参考一下FishfactDM演示,有一点要提醒的是,如果你在设计时链接了一个DataSource,就像在FishFactDM里一样,你的DataModules必须被一个WebApplication所拥用,这在FishFactDM中是通过设置DataModules’sowner到SessionData’sowner的WebApplicationVariable来实现的,如果做了这一步,那个Form在属性中是不可读的,并且,所有的Form都将会被链接到第一个也就是同一个DataModule

ExtandingIntraWeb

自定义组件(CustomComponents)

所有的IntraWeb组件都是用一个开放的API来写的,这将允许你更容易的将你自已写的组件增中到IntraWeb里,这就像是其它的Delphi所做的一样。

嵌入纯HTML

通过使用TIWText,你可以不编写一个组件就把你自己的HTML语句嵌入到IntraWeb中,简单地把一个TIWText组件拖放到你的Form里,设置RawText属性为True,并且把WantReturns设置为False,最后,把你需要的HTML语句放到Lines属性里,你的HTML将会成为你输出的Form的一部分。

HTMLTemplates

HTMLtemplates(可以参考一下其它地方的Template)用于增加一些复杂的HTML到你的应用程序中用来定义你的应用程序的外观。

你可以看看LayoutManager部分来获得更多的信息。

FormManagerment

介绍

在一个IntraWeb应用程序中管理Form就像在普通的Delphi程序中一样简单,但也有一点限制。

限制

1.只有一个Form是可见的,这是因为在实际情况中,浏览器里只能显示一个Form.

2.模式的Forms是不能使用的,然而,因为在浏览器中一次只能显示一个Form,所以实际上所有的Form都是模式的。

3.所有的Form都必须是OwnedByWebApplicaton.

使用方法

FormList

IntraWeb保留了一个Forms的列表做为用户Session的一部分,它就像是时装店里的新上架商品一样,最近显示的Form将会被保留在最顶端,当一个Form被隐藏时或被释放时,这个列表用来确定应该激活哪一个Form,如果没有明确的通过.Show方法来提出应该显示哪一个Form.

通常,FormList从来不会直接与用户进行交互,而是通过Call的方法来确定显示哪一个Form,但是,在有的情况下,FormList必须与用户进行交互,在这些情况下,TIWApplication包含了一系列的方法来实现与用户的交互,这在帮助文档里都有说明。

ShowingForms

显示一个Form通常的语句格式如下:

第一次看来,这有点让人迷惑,但是它是以下格式的略缩:

除了它在这里是一个WebApplication这外,就像是通常的应用程序一样,不同的是,普通的应用程序在调用了Call之后,Form是马上就显示,在IntraWeb中,当Call调用一个Form之后,只是纯粹地指定了哪一个Form是在一个事件退出之后下一个活动的Form,也仅仅当一个事件被执行之后Form才会显示。

DestoryingForms

一个普通的应用程序中,当一个Form不在需要的时候,它能通过使用.Free或.Destroy方法来Destory掉,在IntraWeb应用程序中,有一点相似,但是,你不能直接调用.Free或.Destroy方法,你必须调用一个.Release方法,.Release方法并没有真正地Destory这个Form,这个Form直到退出了事件并且把控制权还给IntraWeb的时候才会真正地Destory.这是因为.Release是Form本身在事件中调用的,尽管这并不是经常发生。

当Relase被调用的时候,就像一个普通的应用程序一样,当前活动的Form变成前一个被Destory的Form,如果你不想用户回到上一个Form,你就必须调用.Show方法来激活另一个Form,可以在.Release将程序控制权还给IntraWeb之前或之后调用.Show方法。

当一个Form被释放后,所有对这个FormList的参考都会被删除,如果在这些Form在Hidden或Release的时候没有调用.Show方法,将改变Form的序列。

HidingFroms

在普通的应用程序中可以不调用.Hide方法来Destory一个Form,同样的功能也可以在IntraWeb中调.Hide方法来实现,.Hide方法可以在调用.Release方法时隐藏一个Form而不必Destroy它。

调用.Release时,.Hide删除了所有的关于对这个FormList的引用,但是并没有Destory它,正因如此,如果你想在以后还想继续使用这个Form,你必须保留一个对这个Form的引用,换句话说,也就是这个Form变成孤立的了。

PassingDataBetweenForms

像普通的应用程序一样,数据可以在Form之前传递,因为Form的信息可以做为FormClass的一个变量储存在内存中。

作为一个试例,你要定义两个Form,TFormMain和TFormDialog.TFormMain是主Form并且包含一个Butoon和一个EditBox。

TFormDialog包含一个memoField和一个Label。

当用户在主窗体中点击按钮时,主窗体的EditBox中的文字会被加到DialogForm的MemoField中去,同时,DialogForm也会被显示,DialogForm也同时显示了它已经被显示了多少次,并且允许用户返回到主窗体中去。

IWLink1OnClick

这个事件以链接的形式与标识Caption为”Quit”相关,当用户点击这个链接时,简单地终止了这个应用程序。

OnCreate

OnCreate事件将会在这个Form被创建时调用,在这个事件中创建了别一个Form,同时,这个Form的引用也做为Form的memberVariable储存起来了,以便于再次调用。

butnOkOnClick

OnClick事件中将会检查EditBox中是否有数据,如果没有数据存在,那么程序将调用WebApplication.ShowMessage向用户显示一些信息,当释放MessageBox后,Form将会再次显示,如果用户已经输入了数据,那么,UsingFDialogForm(在当前Form的OnCreate事件中创建)将会显示,EditBox中的数据会被加到MemoField中,TFormDialog的membervariable会更新,调用.Show方法显示这个Form,就像你看到的,数据在两个不同的Form中被传递了,如同普通的Delphi应用程序一样。

CompleteDemo

你可以看看FormData.dpr这个Demo来获得完整的示例。

StateManagement

InherentState

标准的Web开发工具都有一个自动的SessionManagement,但仅仅意味着它会为你跟踪Session的信息,你仍然不得不在页面之间处理这些状态信息,或者在不同的状态对象中处理这些信息,状态对象通常也局限于字符串和那些字符串中整理出来的数据,这不利于处理更复杂的数据类型。

IntraWeb在这方面有了一定的改善,它是一种固有的状态管理。

你倒底是在说什么呀?

新的词语?

不,问问你自己吧,你是怎样在普通的Delphi程序中管理这些状态的呢?

什么?

你不需要管理?

正是这样,在IntraWeb中你确实也需要管理这些。

限制

GlobalVariables

全局变量通常不会使用,如果你需要使用全局变量来指定每一个用户Session都要用到的变量,我们下面将会提到的。

如果你需要对所有的用户Session都使用一个变量,那你就用一个全局变量吧,然而,IntraWeb是一个线程化的环境,你必须指定一个属性来保护当前访问的变量。

ThreadVars

ThreadVars在IntraWeb应用程序中永远不会被使用到,除非某种临时的储存的使用。

IntraWeb是基于HTTP的表态访问的,这在本质上就意味着所有的线程都没有指定给某一个特定的用户,并且用户是在HTTP请求和线程中转移的。

SafeStorage

Form/DatamoduleMembers

因为IntraWebForm和DataModules是持续的,就像普通的Delphi程序一样,你能以membe

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1