📄 intraweb开发指南.htm
字号:
lang=EN-US>Delphi</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">最佳</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发框架</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">同以往所有的</SPAN><SPAN
lang=EN-US>Web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发框架相比,是一个革命性的产品,特点就是:</SPAN></P>
<P><SPAN lang=EN-US>1. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">完全支持所见即所得的开发方式,同标准的</SPAN><SPAN
lang=EN-US>Windows</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序开发几乎一模一样,你只要在窗体上放置编辑框,按钮,组合框,标签等等可视化控件,运行程序后所获得网页和你所设计时所看到的效果是完全一致的。</SPAN></P>
<P><SPAN lang=EN-US>2. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">另外</SPAN><SPAN
lang=EN-US>IntraWeb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">同</SPAN><SPAN
lang=EN-US>ASP.net</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN
lang=EN-US>WebForm</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的开发方式非常类似,也支持各类</SPAN><SPAN
lang=EN-US>Server</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">端事件,象</SPAN><SPAN
lang=EN-US>Button</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN
lang=EN-US>OnClick</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">事件等等。只要学过标准</SPAN><SPAN
lang=EN-US>Windows</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发的程序员学习</SPAN><SPAN
lang=EN-US>IntraWeb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发可以毫不夸张地说,没有任何学习曲线,你甚至可以不需要有任何的</SPAN><SPAN
lang=EN-US>HTML</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">、</SPAN><SPAN
lang=EN-US>XML</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">、</SPAN><SPAN
lang=EN-US>JavaScript</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">等等网站编程知识,你只需要懂得</SPAN><SPAN
lang=EN-US>Pascal</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">就足够了。</SPAN></P>
<P><SPAN lang=EN-US>3. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">因为</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的作者</SPAN><SPAN
lang=EN-US>Kuduz</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">是著名的网络开发组件</SPAN><SPAN
lang=EN-US>Indy</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的创始人,有着极强的网络服务器开发经验,在</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">中集成了一个小巧的</SPAN><SPAN
lang=EN-US>http server</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,可以方便的进行</SPAN><SPAN
lang=EN-US>web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序跟踪调试排错,从我使用的经验来看,比</SPAN><SPAN
lang=EN-US>Borland</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN lang=EN-US>Web App
Debugger</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">运行速度要快,要更稳定。</SPAN></P>
<P><SPAN lang=EN-US>4. </SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">支持非常简单直观的</SPAN><SPAN
lang=EN-US>Session</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">支持,后面我们会讲到。</SPAN></P>
<P><B><SPAN style="FONT-FAMILY: 宋体; Times: ">基于</SPAN><SPAN
lang=EN-US>Web</SPAN></B><B><SPAN
style="FONT-FAMILY: 宋体; Times: ">的人力资源系统</SPAN></B></P>
<P><SPAN lang=EN-US>
</SPAN><SPAN style="FONT-FAMILY: 宋体; Times: ">前面说了</SPAN><SPAN
lang=EN-US>IntraWeb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">那么多的好处,那么我们现在就来看看如何实现一个简单的人力资源系统。下面是我们要做的人力资源系统的用例图:</SPAN></P>
<P><SPAN lang=EN-US><IMG height=361
src="IntraWeb开发指南.files/image002.gif" width=371
v:shapes="_x0000_i1028"> </SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; Times: ">从用例图我们可以看到这个人力资源系统,主要的功能就是能够增加、删除和修改公司的信息以及公司内的人员的相关信息,并能够对职员的各项信息进行查询。对于</SPAN><SPAN
lang=EN-US>IT</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">公司来说,他们最关心的是职员的专业技能,因此要求对职员的各项技能有一个评估,下面就是根据需求做的数据库设计的</SPAN><SPAN
lang=EN-US>ER</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">图:</SPAN></P>
<P><SPAN lang=EN-US> <IMG height=393
src="IntraWeb开发指南.files/image004.gif" width=478
v:shapes="_x0000_i1029"> </SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; Times: ">从图中可以看到,本系统的信息模型非常简单,公司同职员的关系是一对多,技能水平同职员的关系是多对一的,剩下的表还有就是管理员表和一些编码表了。要注意的是这个信息模型设计的实际上是有一些问题的,但是我们的目标主要放在如何使用</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">开发</SPAN><SPAN
lang=EN-US>web</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序,这里就不讨论设计的问题了。由</SPAN><SPAN
lang=EN-US>ER</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">图生成</SPAN><SPAN
lang=EN-US>Access</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的数据库表,数据库文件名为</SPAN><SPAN
lang=EN-US>HR.mdb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">。</SPAN></P>
<P><B><SPAN style="FONT-FAMILY: 宋体; Times: ">登陆界面的实现</SPAN></B></P>
<P><SPAN
style="FONT-FAMILY: 宋体; Times: ">几乎所有的应用系统的第一个界面都是登陆界面,我们首先就来实现一个登陆界面。点击</SPAN><SPAN
lang=EN-US>Delphi7</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的菜单项</SPAN><SPAN lang=EN-US>File |
New…</SPAN><SPAN style="FONT-FAMILY: 宋体; Times: ">调出</SPAN><SPAN
lang=EN-US>New Items Dialog</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,</SPAN> <SPAN
style="FONT-FAMILY: 宋体; Times: ">执行</SPAN><SPAN lang=EN-US>Intraweb
| Stand Alone Application</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,</SPAN><SPAN
lang=EN-US>IntraWeb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">会创建两个文件一个是</SPAN><SPAN
lang=EN-US>ServerController</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,一个是窗体文件,名为</SPAN><SPAN
lang=EN-US>IWUnit1</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,创建后的项目编译后会生成的目标文件为</SPAN><SPAN
lang=EN-US>EXE</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">类型的</SPAN><SPAN lang=EN-US>Web
Server</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">程序,我们这里选择</SPAN><SPAN
lang=EN-US>Stand Alone</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">模式的程序是因为在这种模式下</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">可以很方便的进行单步跟踪调试,到发布时我们只需要简单修改一下项目文件就可以将</SPAN><SPAN
lang=EN-US>Stand Alone</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">模式的</SPAN><SPAN
lang=EN-US>webserver</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">改成</SPAN><SPAN
lang=EN-US>ISAPI</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">形式发布的</SPAN><SPAN lang=EN-US>Web
Server</SPAN><SPAN style="FONT-FAMILY: 宋体; Times: ">。</SPAN></P>
<P><SPAN style="FONT-FAMILY: 宋体; Times: ">先保存项目,设定项目名为</SPAN><SPAN
lang=EN-US>HR</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,将</SPAN><SPAN
lang=EN-US>IWUnit1</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">改为</SPAN><SPAN
lang=EN-US>CFormLogin.pas</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,因为我们的项目中大量用到了数据库的操作,所以要新建一个数据模块,名为</SPAN><SPAN
lang=EN-US>DatamoduleUnit.pas</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">。接下来在</SPAN><SPAN
lang=EN-US>CFormLogin</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">界面上放置二个</SPAN><SPAN
lang=EN-US>TIWEdit</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">控件,命名为</SPAN><SPAN
lang=EN-US>iweUser</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">和</SPAN><SPAN
lang=EN-US>iwePass</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">用于输入登陆用户名和口令。再放置两个</SPAN><SPAN
lang=EN-US>TIWButton</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">按钮,命名为</SPAN><SPAN
lang=EN-US>iwbConfirm</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">和</SPAN><SPAN
lang=EN-US>iwbClear</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">,最后放上两个</SPAN><SPAN
lang=EN-US>TIWLable</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">标签控件,设定</SPAN><SPAN
lang=EN-US>Caption</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">为输入提示信息,完成界面示意图如下:</SPAN></P>
<P><SPAN lang=EN-US><IMG height=132
src="IntraWeb开发指南.files/web006.jpg" width=260
v:shapes="_x0000_i1025"> </SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; Times: ">当用户输入用户名和密码后,点击确定按钮后,我们需要判断用户名和口令的合法性,如果不合法,要提示错误信息,要求用户重新输入,注意要在</SPAN><SPAN
lang=EN-US>IE</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">中显示弹出式窗口,需要调用</SPAN><SPAN
lang=EN-US>Intraweb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN
lang=EN-US>WebApplication</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">全局对象的</SPAN><SPAN
lang=EN-US>ShowMessage</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">函数,如果合法则显示主界面。</SPAN></P>
<P><SPAN
style="FONT-FAMILY: 宋体; Times: ">下面就为确定按钮添加单击事件处理函数,下面是</SPAN><SPAN
lang=EN-US>TIWButton</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN
lang=EN-US>OnClick</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">事件的实现代码:</SPAN></P>
<P><SPAN lang=EN-US>procedure TformLogin.iwbConfirmClick(Sender:
TObject);</SPAN></P>
<P><SPAN lang=EN-US>begin</SPAN></P>
<P><SPAN lang=EN-US> if (trim(iweUser.Text)='') or
(trim(iwePass.Text)='') then</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
<P><SPAN lang=EN-US>
WebApplication.ShowMessage('</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">必须输入用户名和密码</SPAN><SPAN
lang=EN-US>');</SPAN></P>
<P><SPAN lang=EN-US> Exit;</SPAN></P>
<P><SPAN lang=EN-US> end;</SPAN></P>
<P><SPAN lang=EN-US> //dmHR</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">是定义在数据模块中联结</SPAN><SPAN
lang=EN-US>HR.mdb</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">的</SPAN><SPAN
lang=EN-US>Ado</SPAN><SPAN
style="FONT-FAMILY: 宋体; Times: ">联结</SPAN></P>
<P><SPAN lang=EN-US> with dmHR do</SPAN></P>
<P><SPAN lang=EN-US> begin</SPAN></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -