使用 IntraWeb (6) - 页面模板: TIWLayoutMgrHTML、TIWTemplateProcessorHTML

IW 通过 TIWLayoutMgrHTML 和
TIWTemplateProcessorHTML 使用 HTML 模板.

所谓模板就是一个特殊 HTML 文件, 特殊之处是: 它里面会类似 {%
IW控件名称 %} 的标记.

这类似与 Format 函数中的 %s 等, 但 IW 要高级的多, 被重新布局的控件还要维持其功能.




TIWLayoutMgrHTML、TIWTemplateProcessorHTML 的区别在于, 前者使用内嵌的 Html 代码, 后者使用 Html
文件.



测试一: 使用 TIWLayoutMgrHTML



先在空白窗体上添加 IWEdit1、IWEdit2、IWButton1 和 TIWLayoutMgrHTML;

然后给
IWButton1.OnClick 写句测试代码:

procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
  WebApplication.ShowMessage(IWEdit1.Text + sLineBreak + IWEdit2.Text);
end;


然后编辑
TIWLayoutMgrHTML 的 Html 属性; 这是我测试用的简单代码(其中包含了前面三个控件名):

<!DOCTYPE html>
<html>
<head></head>
<body>
<div style="text-align: center">
<br/><br/>
户名:{%IWEdit1%}<br/><br/>
密码:{%IWEdit2%}<br/><br/>
{%IWButton1%}
</div>
</body>
</html>




最后, 指定窗体的 LayoutMgr 属性为 IWLayoutMgrHTML1.

完成, 运行效果图:






测试二: 在 TIWRegion 中使用模板



就在上面的基础上修改下吧, 步骤:

1. 先添加 IWRegion1
2. 把刚才的
IWEdit1、IWEdit2、IWButton1 复制到 IWRegion1
3. 设置 IWRegion1 的 LayoutMgr 属性为
IWLayoutMgrHTML1
4. 清空窗体的 LayoutMgr 属性(它们不能使用同一个模板)

运行效果图:






测试三: 使用 TIWTemplateProcessorHTML



步骤:

1. 先在当前程序(exe)所在目录建立名为 Templates 模板文件夹, 然后把上面的 Html 测试代码存成名为
IWForm1.html 的文件(使用 UTF8 格式)到 Templates 下.
注释: Templates 的位置与名称是 IW
的约定, 这可以通过 IWServerController.TemplateDir 查看或修改.
注释: 模板名称(当前窗体名.html)也是 IW
的默认约定, 可通过 IWTemplateProcessorHTML1.Templates.Default 修改;
也可通过这个属性动态变换模板.

2. 设置窗体的 LayoutMgr 属性 IWTemplateProcessorHTML1.

3.
注意: 从上面测试下来, 现在 IWEdit1、IWEdit2、IWButton1 还在 IWRegion1 中, 现在有两种选择:
最简单的就是把
IWEdit1、IWEdit2、IWButton1 复制出来放到窗体上.
或者是把 IWForm1.html 中的
{%IWEdit1%}、{%IWEdit2%}、{%IWButton1%} 修改为
{%IWRegion1.IWEdit1%}、{%IWRegion1.IWEdit2%}、{%IWRegion1.IWButton1%}

4.
运行效果同前.



如果继续测试 TIWRegion 使用 TIWTemplateProcessorHTML, 它默认识别的名称也是
IWForm1.html(窗体名.html).

在测试中碰到一个问题:
我在使用 VS 编辑 Html 时, 它自动生成的
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"> IW 不认识, 改为
<html> 就好了.

使用
IntraWeb (6) - 页面模板: TIWLayoutMgrHTML、TIWTemplateProcessorHTML,布布扣,bubuko.com

使用
IntraWeb (6) - 页面模板: TIWLayoutMgrHTML、TIWTemplateProcessorHTML

时间: 2024-12-06 21:51:58

使用 IntraWeb (6) - 页面模板: TIWLayoutMgrHTML、TIWTemplateProcessorHTML的相关文章

使用 IntraWeb (28) - 基本控件之 TIWTemplateProcessorHTML、TIWLayoutMgrHTML、TIWLayoutMgrForm

TIWTemplateProcessorHTML //使用外部的 html 文件做模板 TIWLayoutMgrHTML //直接输入 Html 文本做模板 TIWLayoutMgrForm //这应该只是内部使用的东西, 对用户没有意义 {需要把它们关联到窗体的 LayoutMgr 属性; 主模板需要通过 IWServerController.MasterTemplate 指定} TIWTemplateProcessorHTML 所在单元及继承链: IWTemplateProcessorHTM

使用 IntraWeb (7) - 主模板

TIWLayoutMgrHTML.TIWTemplateProcessorHTML 属于页面级的模板, 如果要全站统一模板, 当然要用主模板.TIWTemplateProcessorHTML 通过其 MasterTemplate 属性可以设置页面级的主模板, 它可以实现模板嵌套, 但这意义不大.我们要用的全站级的主模板是通过 IWServerController(ServerController 单元) 的 MasterTemplate 属性设置的.设置方法: IWServerControlle

IntraWeb例子练习

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

使用 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 (31) - IntraWeb 的 Xml 操作使用的是 NativeXml

在 IWNativeXml 单元. 知道了这个, 以后在其他 Delphi 程序中也可以直接 Uses IWNativeXml 了. TNativeXml (IWNativeXml.TNativeXml property AbortParsing: Boolean property BinaryEncoding: TBinaryEncodingType property CommentString: UTF8String property DropCommentsOnParse: Boolean

使用delphi+intraweb进行微信开发2—intraweb以.net方式发布(以asp.net mvc4模式部署)在IIS(.net虚拟主机)上

在第一讲使用delphi+intraweb进行微信开发1--微信平台接入中我们编写了一个简单的微信接口程序,这个程序我是用Stand Alone Server / Service 方式编译的程序,并且将端口设置成80进行的微信接口测试,但是实际使用时为了更好的服务器性能我们一般采用iis作为web服务器,以往的情况下iw需要编译成isapi部署在iis上.但是由于自打iis7以后iis对isapi的态度发生了很大变化(推荐使用fastcgi了)导致编译好的isapi很难在iis7.5上部署成功,

WordPress创建多个page页面模板文件

一般我们使用WordPress创建多个page页面模板文件,有两种方法: 一种是,创建page-$id.php文件 这样的文件是通过WordPress默认的链接查询来创建page页面模板文件,就是使用页面的id来对应模板. 另一种,是在page页面模板的头部加上一段代码,效果是,我们创建页面时,可以选择相对应的模板文件,如图 在page页面头部加入的代码是 <?php /** * Template Name:留言板( 注::名称自已改,我创建的是留言板页面) * * @package WordP

关于INTRAWEB ISAPI DLL发布

DELPHI XE7自带的INTRAWEB 14开发的EXE程序不能在IE 11浏览器里面运行,不兼容,同一个程序在CHROME里面却运行正常. 编译的ISAPI程序,在两种浏览器里都不能执行,在IIS管理器的设置正确的前提下. 看来INTRAWEB程序的发布兼容何种浏览器的何种版本是一个大问题. 怎样将Stand Alone App变为ISAPI Dll? 一是将工程文件中的program改成library,二是将uses里的IWInitStandAlone改成IWInitISAPI,没有该文

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

窗体 TIWAppForm 所在单元及继承链: IWAppForm.TIWAppForm 主要成员: property OnURLRequest: TOnURLRequest //响应下面的 DoURLRequest 方法 procedure DoURLRequest(aRequest: THttpRequest) //执行 OnURLRequest 事件; 如: DoURLRequest(WebApplication.Request); function MessageForm: TIWMes