警告:在例程中的主窗体上放置了一个Close按钮,但该按钮没有调用Release方法,而是调用了WebApplication对象的Terminate方法。该方法可以传递输出信息,如WebApplication.Terminate(‘goodbye’);例程中使用了另一种替换方法:TerminateAndRedirect。
现在已经知道如何创建带有两个窗体的IntraWeb程序,接着我们简要地考查一下IntraWeb是如何创建主窗体的。当创建一个新程序时,在项目文件里有由IntraWeb向导产生的相关代码:
begin IWRun(TFormMain, TIWServerController);
这一行不同于Delphi的标准项目文件,因为它调用了一个全局函数而不是应用全局对象的方法。函数的两个参数分别是主窗体的类和IntraWeb控制器的类。该控制器能够处理会话期和许多特性,稍后就会介绍。
例程中的第二个窗体显示了IntraWeb另外一个有趣的特性:图形支持。该窗体有一个显示雅典娜神像的图形组件,这是通过把一个位图装载进一个IWImage组件中实现的:Intraweb把这个位图转换成JPEG格式,并存到创建于程序所在文件夹内的cache文件夹中,然后再返回该JPEG文件的引用。其相应HTML代码如下:
<img src="/cache/JPG1.tmp" name="IWIMAGE1" border="0" width="153" height="139">
该例程使用的IntraWeb另外一个特性是用户可以用鼠标点击图像,并通过运行服务器端代码来实现修改图像的功能。在本例中,修改的结果是画绿色的小圆圈。
代码如下:
procedure Tanotherform.IWImage1MouseDown(ASender: TObject;
const AX, AY: Integer);var aCanvas: TCanvas;begin aCanvas := IWImage1.Picture.Bitmap.Canvas; aCanvas.Pen.Width := 8; aCanvas.Pen.Color := clGreen; aCanvas.Ellipse(Ax - 10, Ay - 10, Ax 10, Ay 10);end;警告:绘制操作是发生在位图的画布(canvas)上。不要使用Image组件的画布(在VCL组件Image中是可以这样做的),也不要使用JPEG图像,否则不是没有响应就是出运行错误。
会话期管理
注:Session就是通话、话路。在打电话的时候,通常情况下每一对用户拥有一个话路,否则就会“窜线”了。在本章中,Session就是指客户端的一个用户和服务器交互的话路,或者称为交互通道。由于其他书籍中把Session译作“会话期”,这里沿用该译法。——译者。
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




