⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 intraweb开发学习笔记(一).htm

📁 IntraWeb学习资料
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0034)http://www.51delphi.com/wz/15.html -->
<HTML><HEAD><TITLE>无标题文档</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>BODY {
	FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma", "宋体"
}
.Title {
	FONT-WEIGHT: bold; FONT-SIZE: 12pt; LINE-HEIGHT: 14pt; FONT-FAMILY: "Tahoma", "宋体"; BACKGROUND-COLOR: #ccccff
}
TD {
	TEXT-INDENT: 18pt
}
.SubTitle {
	FONT-SIZE: 10pt; LINE-HEIGHT: 14pt; FONT-FAMILY: "Tahoma", "宋体"; BACKGROUND-COLOR: #cc99ff
}
.body {
	FONT-SIZE: 10pt; FONT-FAMILY: "Tahoma", "宋体"
}
</STYLE>

<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=1 cellPadding=0 width="80%" align=center bgColor=#0033ff 
border=0>
  <TBODY>
  <TR>
    <TD class=Title bgColor=#ffffff>
      <DIV align=center>IntraWeb开发学习笔记<FONT size=-1>(一)</FONT></DIV>
      <DIV align=right><FONT size=-1>作者:bnPYSse(原创)</FONT></DIV></TD></TR>
  <TR>
    <TD class=body bgColor=#ffffff>
      <P>特别感谢Xalion对于Web开发的一系列文章,如果没有他的鼓励,恐怕也不会有这篇文章了。如需转载,请标明出处。如需交流,请联系我:<A 
      href="mailto:bnpysse@sina.com">邮箱</A></P>
      <P>随着Internet/Intranet的快速发展,在现在的开发领域中,这是一个对所有程序员都十分诱人的领域,而Delphi的方便宜用更使大家愿意选择这一工具开发InterNet/IntraNet应用。Delphi7当中集成了IntraWeb开发工具,在学习和使用这个工具的时候,有一些心得体会,在这里写出来,如有错误和不对的地方,请指出来,愿与所有对它感兴趣的朋友共同探讨和学习。</P></TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>1、关于IntraWeb的开发模式</TD></TR>
  <TR>
    <TD class=body bgColor=#ffffff>
      <P>IntraWeb有两种开发模式,它的作者称之为:AppMode和PageMode,即应用模式和页模式。AppMode,也称WebApplication(或者叫StandAlone),是其开发者着重推荐的,也是IntraWeb将来的发展方向,PageMode,亦即传统的Delphi下开发InteNet的WebBroker的方式。应当说,两种不同的开发模式,各有优缺点,AppMode快速简便,而PageMode灵活性更强一些。</P>
      <P>AppMode的开发应用方向是Web应用,而不是传统的网站建设。AppMode内建Internet浏览器,服务器端不需要Web应用服务器就能很好的工作。解决了Web应用程序开发中Client/Server的交互问题,可以不使用Cookie(这一点我还没有很好的理解,^_^)。AppMode下开发的程序做为NT的一个服务在Server上启动,Client在浏览器中象使用一个普通的应用程序一样来完成数据库操作、表单提交、查询等工作,应当说IntraWeb在开发Web应用方面完成了一个独创性的工作。</P>
      <P>AppMode方式并不是非常适全做网站的开发工作。</P></TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>2、IntraWeb应用程序的发布</TD></TR>
  <TR>
    <TD class=body bgColor=#ffffff>
      <P>这好象是大家比较关心的问题,做好了东西总得放到网站上去呀,不然怎么用呢?它的应用程序发布也分两类,AppMode开发的东西比较好办,在Server端(必须是管理员身份登录的),进入Command窗口,运行c:&gt;ApplicantionName 
      -install,Application 
      做为NT下的一个服务被启动,然后客户端直接在浏览器中键入:http://www.yourDomain.com:xxxx/就可以启动(或者用http://www.yourDomain.com:xxxx/start),xxxx是你开发程序时在ServerController中设定的端口号(为避免与服务器提供的WEB服务冲突,一般不能设为80端口)</P>
      <P>对于在页面模式下开发的应用来说,将生成的动态链接库及附加文件上传到具有执行权限的目录中即可。</P></TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>3、IntraWeb的开发步骤</TD></TR>
  <TR>
    <TD class=body 
      bgColor=#ffffff>对于AppMode来说,开发一个Web应用程序与开发普通的App应用没有什么两样。新建一个应用程序,红色的代表标准的应用,绿色的自动生成一个数据管理模块。然后要选择一个目录,因为IntraWeb的应用要生成一些Cache及需要的模板、CSS样式表等内容,您可以建一个独立的目录用于存放这些内容。 

      <DIV align=center><IMG height=365 
      src="IntraWeb开发学习笔记(一).files/NewItem.jpg" width=443></DIV>
      <P>这是比较常见的IntraWeb应用开发的模式,下面我想着重谈一谈PageMode的开发应用。</P>
      <P>1、建立一个PageMode,需要用到Delphi新建模块中的WebServerApplication,然后Delphi帮你生成一个标准的DLL模板(当然,我指的是在ISAPI/NSAPI模式下的)</P>
      <P align=center><IMG height=365 
      src="IntraWeb开发学习笔记(一).files/webBroker.jpg" width=443 align=center></P>
      <P>2、建立一个新的PageForm,此处一定要分清楚,<FONT 
      color=#ff0000>ApplicationForm</FONT>是用于在AppMode下开发用的Form,而<FONT 
      color=#0000ff>PageForm</FONT>才是用于传统的WebBroker模式下的Form</P>
      <P align=center><IMG height=365 src="IntraWeb开发学习笔记(一).files/newItem1.jpg" 
      width=443 align=center></P>
      <P>3、这里要在PageForm手工加入一些模块用于程序的处理,主要有以下这些:IWApplication(应用程序处理)、IWTemplateProcessHTML(如果你用到模板的处理的话)、IWLayoutManager(如果想交互式建立Web组件的话)、IWHTMLControl(用于IntraWeb的Html组件处理)等。</P>
      <P>4、在webModule模块中的Implenmention的Uses子句中加入你要使用的PageForm模块。在webModule的Form中加入TIWPageProducer(用于处理PageForm)及TIWModuleController(用于Web控制)。</P>
      <P>5、在WebModule的Form中单击右键,新建Action,并设定该Action的PathInfo和Producer(设定为风才刚才加入的TIWPageProducer),譬如:设定PathInfo:='/main'。</P>
      <P>6、对于IWPageProducer建立它的OnGetForm事件处理,并加入如下的语句:vForm:=TFormMain.Create(AWebApplication);</P>
      <P>至此,一个简单的应用就完成了,你可以在Delphi7中按下Ctrl+F9键,生成一个Dll文件,拷贝到具有执行权限的Web目录下,在浏览器中键入:http://localhost/myweb/project1.dll/main,就可以运行了(myWeb是你在IIS中建立的Web目录)</P>
      <P align=left>&nbsp;</P></TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>4、IntraWeb的安装中出现的问题</TD></TR>
  <TR>
    <TD class=body bgColor=#ffffff>
      <P>大家可能都从<A 
      href="http://www.51delphi.com/">Delphi窑洞</A>,下载了较新版本的IntraWeb,当前最新的版本(Ver.5.00.56)可以从<A 
      href="http://www.atozedsoftware.com/downloads/intraweb/iw5.0.55_d7.exe">For 
      Delphi7</A>、<A 
      href="http://www.atozedsoftware.com/downloads/intraweb/iw5.0.56.exe">For 
      Delphi5&amp;Delphi6)</A>(告诉你一个好消息的是,可是用v.5.00.55版的注册机!)。</P>
      <P>在安装新版本后要,可能会出现Entry Point could not be 
      located错误,这是因为你运行库还是老版本的缘故,请按以下步骤处理:</P>
      <P>1、首先关闭Delphi7</P>
      <P>2、卸载IntraWeb</P>
      <P>3、搜索硬盘当中的*intraweb*.bpl和*intraweb*.dcp,一般是在Windows的系统目录里有运行库文件,而在Delphi目录里有设计时文件,确保将这些文件全部删掉。</P>
      <P>4、重新安装IntraWeb。因为安装过一次以后,会在注册表里产生一个注册码,再一次用注册机生成注册码,并用IWRegister.exe进行注册以后,会在LibD7目录下的IWLicenseKey.pas文件里生成两个注册码(中间以“+”联接),删掉其中的一个,不然,运行后会产生错误。</P>
      <P>另外,对于Delphi6的用户,必须确保UpdatePack2被安装,不然编译后会产生“"InGlobal" was compiled 
      with a different version of System.rtl ”错误。</P></TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>5、IntraWeb应用程序的卸载问题</TD></TR>
  <TR>
    <TD class=body bgColor=#ffffff>
      <P>也是分两大类,一类是AppMode下开发的应用程序,首先要在服务管理器里面停止该程序的运行,然后在命令行状态下键入:c:&gt;ApplicationName 
      -uninstall,最后删除该程序即可。对于在PageMode开发的DLL来说,需要在服务管理器里面,找到组件服务,关闭它就可以。</P>
      <P align=center><IMG height=480 src="IntraWeb开发学习笔记(一).files/CloseDll.jpg" 
      width=640></P></TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>6、在使用ADO或其他COM组件的时候,出现“CoInitialize 
      must be called”错误。 </TD></TR>
  <TR>
    <TD class=body 
      bgColor=#ffffff>这是一个比较常见的错误,请在IWServerController中设置ComInitiaLization属性为ciMultiThreaded,而缺省的设置为ciNone。</TD></TR>
  <TR>
    <TD class=SubTitle bgColor=#ffffff>7、如何将我的StandAlone 
      Application转换成ISAPI应用?(转自其官方网站)</TD></TR>
  <TR>
    <TD class=body bgColor=#ffffff>
      <P><BR>program Guess; <BR>uses<BR>&nbsp;&nbsp;IWInitStandAlone, Main in 
      'Main.pas' {formMain: TIWFormModuleBase},<BR>&nbsp;&nbsp;ServerController 
      in 'ServerController.pas' {IWServerController: TDataModule}; <BR>{$R 
      *.res}<BR>begin<BR>&nbsp;&nbsp;IWRun(TFormMain, TIWServerController); 
      <BR>end.</P>
      <P>1、改变Program 子句为 library. </P>
      <P>2、改变 IWInitStandAlone 为IWInitISAPI.</P></TD></TR>
  <TR></TR>
  <TR>
    <TD class=body bgColor=#ffffff><FONT 
      color=#990000>先到这里吧,下一期我想将关于JavaScript及某些IntraWeb组件的应用心得写出来,如果你有什么好的建议,可以联系我。谢谢大家!</FONT></TD></TR></TBODY></TABLE></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -