使用 IntraWeb (37) - TIWApplication    


每个访问用户都会拥有一个它的实例(WebApplication), 它除了承载 Session(会话)数据, 还要记忆着用户的浏览器信息、登陆信息等等; 另外, 窗体的建立也都依附(Owner)于它, 并随之自动释放.



TIWApplication 所在单元及继承链:
IWApplication.TIWApplication < TIWVCLComponent < TComponent < TPersistent < TObject

主要成员:


property AppUrlBase: string//测试结果: /, 在 isapi 等其它模式下会有不同, 在 gSC.AllowMultipleSessionsPerUser = True 时会有不同property InternalUrlBase: string//测试结果: /$/property SessionInternalUrlBase: string//测试结果: /$/property SessionUrlBase: string//测试结果: /property UserCacheUrlBase: string//用户缓存基址, 测试结果: /$/MyApp/0pnlkje0r4hi7j19tzrq30eq0k2i/property ApplicationURL: string//应用地址, 测试结果: http://127.0.0.1:3126 property CallBackProcessing: Boolean//是否正在执行回调; only readproperty CallBackResponse: TIWCallBackResponse //回调响应对象property ApplicationPath: string  //程序路径, 测试结果: C:\Users\wy\Documents\RAD Studio\Projects\MyTest6\Win32\Debugproperty ActiveForm: TComponent  //当前窗体property ActiveFormCount: Integer //没被销毁的窗体数property AppID: string  //property AuthPassword: string  //用户密码property AuthUser: string  //用户名property Browser: TBrowser  //浏览器property Data: TObject  //Session 数据property DesignMode: Boolean  //是否是在设计时property ExecAction: string  //目标地址, 默认同 FormActionproperty FormAction: string  //对应 Html Form 的 action 属性property FormCount: Integer  //窗体总数property FormWidth: Integer  //浏览器页面宽度property FormHeight: Integer  //浏览器页面高度property FileList: THttpFileList  //上传文件列表property IP: string  //用户 IPproperty IsCallBack: Boolean  //真正处理回调property LastAccess: TDateTime  //最后一次会话请求的时间property MasterTemplate: string  //主模板地址property ActiveMasterTemplate: string //正在使用的主模板property SecureMode: Boolean  //是否使用安全模式(SSL)property ReferringURL: string  //当前实际地址, 测试结果: http://127.0.0.1:3126/$/startproperty Response: THttpReply  //Response(相应) 对象property Request: THttpRequest  //Request(请求) 对象property RunParams: TStrings  //运行参数property Terminated: Boolean  //会话是否终止property SessionTimeOut: Integer  //超时时间(分钟)property SessionTimeStamp: TDateTime //会话开始时间property TrackID: Cardinal     //提交序列值(用户提交的次数)property TaggedSessionName: string   //同 AppID?property UserCacheDir: string     //用户缓存路径property MappedURL: string     //用于获取 ExecActionproperty Permissions: TIWPermissions //XII 新增的权限控制, 只有一个 CanEditPages 属性, 目的是可应用内置的 Html 编辑器, 我测试未成.property CacheFiles: TStrings     //缓存文件列表property OnExecuteFormError: TExecuteFormErrorEvent //property Forms[AIndex: Integer]: TComponentproperty ActiveForms[AIndex: Integer]: TComponentfunction FindFile(AName: string): THttpFile //获取上传的文件procedure GoToURL(const AURL: string; const aPrependBaseUrl: Boolean) //转到指定地址procedure MarkAccess //更新 LastAccess 到当前时间class function FullApplicationURL(ARequest: THttpRequest): string //返回程序的完整地址function FindFormByClassName(const AFormClassName: string): TComponentfunction FindFormByName(const AFormName: string): TComponentprocedure SendFile(const aPathname: string; const aAttachment: Boolean; aContentType: string; aFilename: string) //aPathname: 全路径; aAttachment: True 是下载, False 在浏览器显示; aContentType: 类型, 若为空则根据扩展名判断; aFilename 重命名要下载的文件procedure SendStream(aStream: TStream; const aAttachment: Boolean; const aContentType: string; const aFilename: string)procedure SetActiveForm(AForm: TComponent) //一般用在 initialization 区procedure SwitchToSecure    //转换到安全链接(支持 SSL 时)procedure SwitchToNonSecure //转换到非安全链接(支持 SSL 时)procedure ShowMessage(AMsg: string; const AType: TIWShowMessageType; ATemplate: string) //AMsg: 信息; AType: smAlert, smNewWindow, smSameWindow, smSameWindowFrame; Atemplate: 模板(后两个 Type 时), 默认 IWShowMessage.htmlprocedure NewWindow(const AURL: string)//Open Window, 通过下面重载可设置更多参数procedure NewWindow(const AURL: string; const AName: string; const AWidth: Integer; const AHeight: Integer)procedure NewWindow(const AURL: string; const AName: string; const AWidth: Integer; const AHeight: Integer; AOptions: TIWWindowOptions; const ATop: Integer; const ALeft: Integer)procedure Terminate //终止应用procedure Terminate(const AMsg: string)//终止并提示信息procedure TerminateAndRedirect(const aURL: string) //终止并转到procedure RegisterCallBack(AName: string; ACallbackFunction: TIWCallbackFunction = procedure(aParams: TStringList) of object) //注册函数, 会替换同名procedure PerformCallBack(Sender: TComponent; const AName: string) //执行 RegisterCallBack 注册的函数function GetInternalFileURL(const AFilename: string): string //获取内部文件链接, 如: WebApplication.GetInternalFileURL('js/IWBase.js')function GetExternalFileURL(const AFilename: string): string //获取外部文件(wwwroot 或自定义的文件夹)链接procedure Lock //锁; 以防止并发访问procedure Unlock //解锁function TryLock: Boolean //尝试锁(会让其他线程等待); 成功返回 True


示例 1:



//待续...


示例 2:



//待续...



©著作权归作者所有:来自51CTO博客作者JLee79的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 软件测试行业前景怎么样?值不值得转行学测试?
  2. 什么是软件测试开发?为什么软件测试行业一夜之间爆火
  3. 狮虎论:软件测试和软件开发到底哪个实际工资更高
  4. 学软件测试看什么书籍推荐?
  5. 软件测试行业 月薪过万必须具备的测试技术
  6. 一份成功的高薪软件测试求职简历应该是这样的
  7. 软件测试工程师的日常工作流程
  8. 软件测试行业前景发展怎么样?从事软测到底有没有出路
  9. Twitter的A/B测试实践(一):为什么要测试?意义是什么?

随机推荐

  1. android adb 使用初阶
  2. 百度地图android客户端的AndroidMainfest
  3. android最佳实践(四)
  4. Android中数据存储的5种方法
  5. Android 面试题总结之Android 基础(六)
  6. Android负责人:完全开放和一致体验是挑战
  7. Android(安卓)TextView 文字空白解决方案
  8. Android 指纹启动流程
  9. android那些事——android的成长
  10. Android设置铃声分析