intraweb开发学习笔记

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

IntraWeb 开发学习笔记(一)
作者:bnPYSse(原创)
特别感谢 Xalion 对于 Web 开发的一系列文章,如果没有他的鼓励,恐怕也不会有这篇文章了。如需转载,请
标明出处。如需交流,请联系我:邮箱
随着 Internet/Intranet 的快速发展,在现在的开发领域中,这是一个对所有程序员都十分诱人的领域,而 Delphi 的方便宜用更使大家愿意选择这一工具开发 InterNet/IntraNet 应用。Delphi7 当中集成了 IntraWeb 开发工具,在 学习和使用这个工具的时候,有一些心得体会,在这里写出来,如有错误和不对的地方,请指出来,愿与所有对它 感兴趣的朋友共同探讨和学习。
3、这里要在 PageForm 手工加入一些模块用于程序的处理,主要有以下这些:IWApplication(应用程序处理)、 IWTemplateProcessHTML(如果你用到模板的处理的话)、IWLayoutManager(如果想交互式建立 Web 组件的话)、 IWHTMLControl(用于 IntraWeb 的 Html 组件处理)等。
2、建立一个新的 PageForm,此处一定要分清楚,ApplicationForm 是用于在 AppMode 下开发用的 Form,而
第2页共9页
收集整理:mrzhou@
IntraWeb 开发学习笔记(mrzhou@ 收集整理) PageForm 才是用于传统的 WebBroker 模式下的 Form
第3页共9页
收集整理:mrzhou@
IntraWeb 开发学习笔记(mrzhou@ 收集整理)
请按以下步骤处理:
1、首先关闭 Delphi7
2、卸载 IntraWeb
3、搜索硬盘当中的*intraweb*.bpl 和*intraweb*.dcp,一般是在 Windows 的系统目录里有运行库文件,而在 Delphi 目录里有设计时文件,确保将这些文件全部删掉。
AppMode 的开发应用方向是 Web 应用,而不是传统的网站建设。AppMode 内建 Internet 浏览器,服务器端不 需要 Web 应用服务器就能很好的工作。解决了 Web 应用程序开发中 Client/Server 的交互问题,可以不使用 Cookie (这一点我还没有很好的理解,^_^)。AppMode 下开发的程序做为 NT 的一个服务在 Server 上启动,Client 在浏览器中象使用一个普通的应用程序一样来完成数据库操作、表单提交、查询等工作,应当说 IntraWeb 在开发 Web 应用方面完成了一个独创性的工作。
对于在页面模式下开发的应用来说,将生成的动态链接库及附加文件上传到具有执行权限的目录中即可。
3、IntraWeb 的开发步骤 对于 AppMode 来说,开发一个 Web 应用程序与开发普通的 App 应用没有什么两样。新建一个应用程序,红色 的代表标准的应用,绿色的自动生成一个数据管理模块。然后要选择一个目录,因为 IntraWeb 的应用要生成一些 Cache 及需要的模板、CSS 样式表等内容,您可以建一个独立的目录用于存放这些内容。
1、改变 Program 子句为 library.
2、改变 IWInitStandAlone 为 IWInitISAPI.
ห้องสมุดไป่ตู้
先到这里吧,下一期我想将关于 JavaScript 及某些 IntraWeb 组件的应用心得写出来,如果你有什么好的建议, 可以联系我。谢谢大家!
IntraWeb 开发学习笔记(二)
再比如frames的问题虽然在它的第三方控件arcana中提供了一个tembededhtml来模拟显示多框架结构但并没有在根本上解决这个问题后面我会讲到利用tembededhtml结合tpageform来实现类似多框架显示的问题大家可以到arcana网站看一下它的效果
IntraWeb 开发学习笔记(mrzhou@ 收集整理)
第1页共9页
收集整理:mrzhou@
IntraWeb 开发学习笔记(mrzhou@ 收集整理)
这是比较常见的 IntraWeb 应用开发的模式,下面我想着重谈一谈 PageMode 的开发应用。
1、建立一个 PageMode,需要用到 Delphi 新建模块中的 WebServerApplication,然后 Delphi 帮你生成一个标 准的 DLL 模板(当然,我指的是在 ISAPI/NSAPI 模式下的)
program Guess; uses
IWInitStandAlone, Main in 'Main.pas' {formMain: TIWFormModuleBase}, ServerController in 'ServerController.pas' {IWServerController: TDataModule}; {$R *.res} begin IWRun(TFormMain, TIWServerController); end.
8、关于模板文件的问题。
在应用模板文件过程中,有几个需要注意的问题。
一是目录的位置。必须是建在当前目录的 Templates 下,不要试图去更改这个位置。
二是命名的问题。模板文件的名称后缀必须是.html,其名称必须和你所建的 PageForm 的名称相同,有些朋友
第5页共9页
收集整理:mrzhou@
另外,对于 Delphi6 的用户,必须确保 UpdatePack2 被安装,不然编译后会产生“"InGlobal" was compiled with a different version of System.rtl ”错误。
5、IntraWeb 应用程序的卸载问题 也是分两大类,一类是 AppMode 下开发的应用程序,首先要在服务管理器里面停止该程序的运行,然后在命 令行状态下键入:c:>ApplicationName -uninstall,最后删除该程序即可。对于在 PageMode 开发的 DLL 来说,需要 在服务管理器里面,找到组件服务,关闭它就可以。
1、关于 IntraWeb 的开发模式
IntraWeb 有两种开发模式,它的作者称之为:AppMode 和 PageMode,即应用模式和页模式。AppMode,也 称 WebApplication(或者叫 StandAlone),是其开发者着重推荐的,也是 IntraWeb 将来的发展方向,PageMode, 亦即传统的 Delphi 下开发 InteNet 的 WebBroker 的方式。应当说,两种不同的开发模式,各有优缺点,AppMode 快速简便,而 PageMode 灵活性更强一些。
作者:bnPYSse(原创)
第一期学习笔记在窑洞刊出后,热心的朋友们给了我很多鼓励,于是我就不自量力,再来一篇。如需交流,请
联系我:邮箱
用 Delphi 的 WebBroker 开发应用程序,按我的理解,先是做好网站的架构,然后利用 TPageProducer 来处理 模板文件中的 HtmlTag,利用 Action 来控制程序的流向或者处理用户的提交请求(路径的概念就象是 ASP 应用中 的一个个子程序)。整个开发过程步骤比较简单,而且按 Xalion 的话来讲,是容易定制或可以满足你所有要求的, 唯一的缺点,就是比较繁琐。而 IntraWeb 在方面可以说是走了另外的路子,不过,由于其本身的限制,它并不是
4、IntraWeb 的安装中出现的问题 大家可能都从 Delphi 窑洞,下载了较新版本的 IntraWeb,当前最新的版本(Ver.5.00.56)可以从 For Delphi7、For Delphi5&Delphi6)(告诉你一个好消息的是,可是用 v.5.00.55 版的注册机!)。
在安装新版本后要,可能会出现 Entry Point could not be located 错误,这是因为你运行库还是老版本的缘故,
4、重新安装 IntraWeb。因为安装过一次以后,会在注册表里产生一个注册码,再一次用注册机生成注册码, 并用 IWRegister.exe 进行注册以后,会在 LibD7 目录下的 IWLicenseKey.pas 文件里生成两个注册码(中间以“+” 联接),删掉其中的一个,不然,运行后会产生错误。
IntraWeb 开发学习笔记(mrzhou@ 收集整理)
以为是和自己存盘的 PAS 文件同名,那样是不会找到模板的。
三是在加入标记的时候,是和 Form 中的组件一一对应的。当然,也可以利用它的 OnUnknownTag 来处理一些 特殊的自己定义的标记。比如你在模板中加入了一个{%img%},但在 Form 中并没有对应的组件,就必须你自己来 写处理代码:
AppMode 方式并不是非常适全做网站的开发工作。
2、IntraWeb 应用程序的发布
这好象是大家比较关心的问题,做好了东西总得放到网站上去呀,不然怎么用呢?它的应用程序发布也分两类, AppMode 开发的东西比较好办,在 Server 端(必须是管理员身份登录的),进入 Command 窗口,运行 c:>ApplicantionName -install,Application 做为 NT 下的一个服务被启动,然后客户端直接在浏览器中键入: :xxxx/就可以启动(或者用 :xxxx/start),xxxx 是你开发 程序时在 ServerController 中设定的端口号(为避免与服务器提供的 WEB 服务冲突,一般不能设为 80 端口)
4、在 webModule 模块中的 Implenmention 的 Uses 子句中加入你要使用的 PageForm 模块。在 webModule 的 Form 中加入 TIWPageProducer(用于处理 PageForm)及 TIWModuleController(用于 Web 控制)。
5、在 WebModule 的 Form 中单击右键,新建 Action,并设定该 Action 的 PathInfo 和 Producer(设定为风才刚 才加入的 TIWPageProducer),譬如:设定 PathInfo:='/main'。
6、对于 IWPageProducer 建立它的 OnGetForm 事件处理,并加入如下的语句: vForm:=TFormMain.Create(AWebApplication);
至此,一个简单的应用就完成了,你可以在 Delphi7 中按下 Ctrl+F9 键,生成一个 Dll 文件,拷贝到具有执行权 限的 Web 目录下,在浏览器中键入:http://localhost/myweb/project1.dll/main,就可以运行了(myWeb 是你在 IIS 中建立的 Web 目录)
非常适合做网站的开发应用,当然,这只是我个人的理解。
比如,大家比较关心的问题,如何打开第二个窗口的问题,IntraWeb 并不支持这种功能,每个服务程序在运行 时只能有一个主窗口,所谓的第二个窗口只可以显示某些信息,不能够响应用户的请求。再比如 Frames 的问题, 虽然在它的第三方控件 Arcana 中提供了一个 TEmbededHtml,来模拟显示多框架结构,但并没有在根本上解决这 个问题(后面我会讲到利用 TEmbededHtml 结合 TPageForm 来实现类似多框架显示的问题,大家可以到 Arcana 网站看一下它的效果)。
第4页共9页
收集整理:mrzhou@
IntraWeb 开发学习笔记(mrzhou@ 收集整理)
6、在使用 ADO 或其他 COM 组件的时候,出现“CoInitialize must be called”错误。 这是一个比较常见的错误,请在 IWServerController 中设置 ComInitiaLization 属性为 ciMultiThreaded,而缺省 的设置为 ciNone。 7、如何将我的 StandAlone Application 转换成 ISAPI 应用?(转自其官方网站)
相关文档
最新文档