骗分来了。[
]
以下摘自《IntraWeb 用户手册》
-----------------
Form Managerment
介绍
在一个IntraWeb应用程序中管理Form就像在普通的Delphi程序中一样简单,但也有一点限制。
限制
1.只有一个Form是可见的,这是因为在实际情况中,浏览器里只能显示一个Form.
2.模式的Forms是不能使用的,然而,因为在浏览器中一次只能显示一个Form,所以实际上所
有的Form都是模式的。
3.所有的Form都必须是Owned By WebApplicaton.
使用方法
Form List
IntraWeb保留了一个Forms的列表做为用户Session的一部分,它就像是时装店里的新上架商品
一样,最近显示的Form将会被保留在最顶端,当一个Form被隐藏时或被释放时,这个列表用来
确定应该激活哪一个Form,如果没有明确的通过.Show方法来提出应该显示哪一个Form.
通常,Form List从来不会直接与用户进行交互,而是通过Call的方法来确定显示哪一个Form,
但是,在有的情况下,Form List必须与用户进行交互,在这些情况下,TIWApplication包含了
一系列的方法来实现与用户的交互,这在帮助文档里都有说明。
Showing Forms
显示一个Form通常的语句格式如下:
TFormType.Create(WebApplication).Show;
第一次看来,这有点让人迷惑,但是它是以下格式的略缩:
with TFormType.Create(WebApplication) do
begin
Show;
end;
除了它在这里是一个WebApplication这外,就像是通常的应用程序一样,不同的是,普通的应
用程序在调用了Call之后,Form是马上就显示,在IntraWeb中,当Call调用一个Form之后,只
是纯粹地指定了哪一个Form是在一个事件退出之后下一个活动的Form,也仅仅当一个事件被执
行之后Form才会显示。
Destorying Forms
一个普通的应用程序中,当一个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被释放后,所有对
这个Form List的参考都会被删除,如果在这些Form在Hidden或Release的时候没有调用.Show方
法,将改变Form的序列。
Hiding Froms
在普通的应用程序中可以不调用.Hide方法来Destory一个Form,同样的功能也可以在IntraWeb
中调.Hide方法来实现,.Hide方法可以在调用.Release方法时隐藏一个Form而不必Destroy它。
调用.Release时,.Hide删除了所有的关于对这个Form List的引用,但是并没有Destory它,正
因如此,如果你想在以后还想继续使用这个Form,你必须保留一个对这个Form的引用,换句话说,
也就是这个Form变成孤立的了。