使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm

窗体

TIWAppForm 所在单元及继承链:
IWAppForm.TIWAppForm

主要成员:


property OnURLRequest: TOnURLRequest //响应下面的 DoURLRequest 方法

procedure DoURLRequest(aRequest: THttpRequest) //执行 OnURLRequest 事件; 如: DoURLRequest(WebApplication.Request);
function MessageForm: TIWMessageFormClass  //函数获取个类而不是对象; 它是个虚函数, 或许是为了在继承时美化弹出窗口
class procedure SetAsMainForm              //设置为主窗口; 须用在 initialization 区
class procedure SetURL(const aPath: string; const aDocument: string) //设置虚拟地址
class function RequestAuth(aRequest: THttpRequest; var rGroup: string): Boolean	//安全判断; 它是虚函数, 可以继承并增加安全条件

TIWForm 所在单元及继承链:
IWForm.TIWForm
{TIWForm = class(TIWBaseHTMLForm, IIWHTML40Container, IIWHTML40Form) //它同时实现了两个接口}

主要成员:


property ActiveControl: TIWCustomControl //当前被激活的控件
property Background: TIWBackground	 //背景图像设置
property LayoutMgr: TIWContainerLayout   //指定布局管理器
property HandleTabs: Boolean //暂未使用
property LeftToRight: Boolean		 //文字方向
property LockUntilLoaded: Boolean	 //在加载完毕前是否禁止操作, 默认 True
property LockOnSubmit: Boolean		 //是否禁止重复提交, 默认 True
property StyleSheet: TIWFileReference	 //要使用的 CSS 文件; 文件须在 wwwroot 下(或嵌套)
property ShowHint //
property ServerOnResize: Boolean         //暂未使用; only write
property ProgressIndicator: TIWProgressIndicator //指定进度提示器
property Theme: string    //暂未使用
property XPTheme: Boolean //
property JavaScript: TStringList //js 代码
property DocType: string    //现在默认 ; 譬如可以指定为:
property KeepAlive: Boolean //保持激活, 以保证 Session 不过期; 应该是用在异步事件用时较长时, 但要慎用, 它会把 SessionTimeout 弄成四百多天; 默认 False;

property OnDefaultAction: TNotifyEvent //默认事件; 譬如在 TIWEdit 编辑后回车, 如果没有给它写 OnSubmit 事件, 将执行默认事件
property OnResize; //在 ServerOnResize 暂时弃用的情况下, 它只执行一次

constructor Create(aOwner: TComponent); override;
procedure AddToInitProc(const ACode: string); //添加用于初始化的 js 代码
procedure DoDefaultAction; //执行一次 OnDefaultAction

procedure SetIWAJAXNotifier(aIWAJAXNotifier: TIWBaseHTML40Component); //TIWAJAXNotifier 就是调用它和下面的 SendAJAXNotification, 感觉直接调用它们应该比 TIWAJAXNotifier 控件更灵活.
function SendAJAXNotification: Boolean;       //
function GetIWAJAXNotificationJSCode: string; //
function GetIsStrictMode: Boolean; //好像是判断是不是 IE 兼容模式
class function FindParentForm(Control: TControl): TIWForm;
property PageContext: TIWPageContext40;        //该对象有更多页面相关的操作; only read
property ContainerContext: TIWContainerContext //该对象有更多容器相关的操作
property JavaScriptOnce: string //只执行一次的 js 代码
property CacheFiles: TStrings   //缓存文件列表; only read

TIWBaseHTMLForm 所在单元及继承链:
IWBaseHTMLForm.TIWBaseHTMLForm

主要成员:


property BGColor: TIWColor    //背景色
property LinkColor: TIWColor  //链接色
property TextColor: TIWColor  //普通文本色
property VLinkColor: TIWColor //访问过的链接色

TIWBaseForm 所在单元及继承链:
IWBaseForm.TIWBaseForm

主要成员:


property FormAction: string  //对应 Html Form 的 action 属性
property Params: TStringList //参数列表, 有点类似 WebApplication.Request.ContentFields, 但后者更全; only read
property Released: Boolean              //是否执行过 Release, 但执行过后很快就 Free 了, 这个属性没多少意义; only read
property WebApplication: TIWApplication //only read
property FormState: TIWFormState        //当前状态: fsUndefined, fsRendering, fsExecuting, fsCreating, fsCreated; only read
property ExecCount: Cardinal            //命令执行次数; only read
property AllowPageAccess: Boolean //好像也未使用
property ConnectionMode: TIWConnectionMode //读取连接模式: cmAny, cmSecure, cmNonSecure
property PreHeader: TStringList	    //插入到 Head 靠前的内容
property ExtraHeader: TStringList   //插入到 Head 靠后的内容
property ContentFiles: TStringList  //包含 js、css
property HiddenFields: TStringList  //隐藏字段
property Title: string		    //网页标题
property PreventBackButton: Boolean //是否禁用后退按钮; 默认 False

property OnAfterRender: TNotifyEvent //呈现后, 发生在 OnCreate > OnRender 之后
property OnCreate: TNotifyEvent
property OnDestroy: TNotifyEvent

procedure Hide //
procedure Show //
procedure Release //释放; 它会先把窗体添加到 WebApplicaiton 内部的列表(FReleasedForms)中, 同时 Hide 掉; 等新的 ActiveForm 就绪后再 Free
procedure ReleaseAndRedirect(const aUrl: string) //释放并转向
class function TextToHTMLStringLiteral(const AText: string): string; //在 Html 中有些字符需要转码, 用这个函数很方便

示例:


//待续...

使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm,布布扣,bubuko.com

时间: 2024-10-14 20:30:43

使用 IntraWeb (38) - TIWAppForm、TIWForm、TIWBaseHTMLForm、TIWBaseForm的相关文章

使用 IntraWeb (3) - 页面切换

新建 StandAlone Application 工程后, 再通过 File > New > Other.. > IntraWeb > New Form 添加两个窗体.然后 TIWForm1 上放两个 TIWButton, 在 TIWForm2 和 TIWForm3 上各放一个 TIWButton. 测试代码用到三个窗体的 OnCreate 和每个按钮的 OnClick 事件. Unit1 中的代码: uses ServerController, Unit2, Unit3; pr

IntraWeb例子练习

IntraWeb例子练习 作者:shengxq2004-12-11 16:13分类:默认分类标签: 特征演示 这个演示是一个不严谨的程序,但是展示了使用IntraWeb开发能做的事情.演示实现下面的功能: 如何使用IntraWeb Frames模仿HTML Frames,基础了delphi的TFrame组件. 在IntraWeb应用程序中使用TIWApplication.ShowMessage方法显示不同类型的信息对话框. 不同类型控件的事件处理: TIWRadioButton 控件.TIWCh

使用 IntraWeb (2) - Hello IntraWeb

IntraWeb 比我相像中的更贴近 VCL, 传统的非可视组件在这里大都可用(其内部很多复合属性是 TStringList 类型的), 它的诸多可视控件也是从 TControl 继承下来的. 这或许是它曾被改名为 VCL For Web 的原因.建立测试工程时, 一般要使用 StandAlone Application, 这方便调试; 具体发布时只需稍稍修改. 我建立了一个交 MyTest1 的工程, 自动生成的主要文件有: MyTest1.dpr.ServerController.pas.U

使用 IntraWeb (45) - 活用 IntraWeb

asp.net 刚开始时, 也是拖拉控件, 但后来有了 MVC.xNext. 换个思路使用 IntraWeb 吧: 界面全部用 html+js+css 实现(除了动态生成的), 然后用 js 通过 Ajax 调用 Delphi 的方法. 测试程序要使用的模板 IWForm1.html: 添加 删除 {%IWLabel1%} 1.在程序所在目录建立 Templates 文件夹, 把 IWForm1.html 放其中. 2.在程序所在目录建立 wwwroot 文件夹, 把模板中用到的 IWForm1

使用 IntraWeb (39) - THttpRequest、THttpReply

在其它服务器脚本语言中熟悉的 Request.Response(THttpRequest.THttpReply) 在 IntraWeb 中算是幕后英雄了, 用户基本不需要直接操作它们了. IW 默认 Post 传值(WebApplication.Request.HttpMethod = hmPost, 只读), 但像表单字段之类, 在 IW 中直接根据控件名称读取就是了, 用不着麻烦 Request. 但如果需要, 可以使用 WebApplication.Request.QueryFields.

使用 IntraWeb (32) - Url 映射与 THandlers

最简单的 Url 映射是使用 TIWAppForm 的 class 方法: SetURL; THandlers 是 IntraWeb XIV 新增的内容处理器, 它能完成的不仅仅是 Url 映射. THandlers 通过虚拟路径.虚拟文件名, 可以转到或处理任何文件. 这个过程中会用到一个 TContentBase 类型的参数, TContentForm.TContentRedirect 是它的子类; 有时会需要从 TContentBase 继承出解决更多问题的子类. THandlers 所在

使用 IntraWeb (25) - 基本控件之 TIWRegion

这应该是 IW 中最重要的容器了, 和它同父的还有 TIWTabControl TIWRegion 所在单元及继承链: IWRegion.TIWRegion 主要成员: property Align: TAlign property Anchors: TAnchors property BorderOptions: TIWContainerBorderOptions //设置边框的宽度.颜色.样式 property Color: TIWColor property ClipRegion: Boo

算法导论 第三版 9.3-8

1 # -*- coding: utf-8 -*- 2 import math 3 4 def merge(l1, l2): 5 list_merge = [] 6 i = j = 0 7 while i < len(l1) and j < len(l2): 8 if l1[i] < l2[j]: 9 list_merge.append(l1[i]) 10 i += 1 11 else: 12 list_merge.append(l2[j]) 13 j += 1 14 if i == l

2016年9月全球桌面系统份额:Win7为39.38%,Win10达

10月1日消息,数据调研机构StatCounter目前给出了2016年9月份全球茗彩娱乐桌面系统市场份额统计排名,数据显示,Win10的增长势头依然良好,在市场份额上和目前排名第一的Win7还有15%左右的差距. 虽然微软在7月29日停止了Windows10免费更新服务,虽然此前微软在2018财年创造10亿Win10用户的目标看起来已经无法实现,但Win10推出后的整体势头依然有目共睹.根据StatCounter的数据,截止2016年9月,Win10已经占据24.46%的市场份额,而Win7为3