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 属性; 这是我测试用的简单代码(其中包含了前面三个控件名):

户名:{%IWEdit1%}

密码:{%IWEdit2%}

{%IWButton1%}


最后, 指定窗体的 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的更多相关文章

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

    TIWTemplateProcessorHTML //使用外部的 html 文件做模板 TIWLayoutMgrHTML //直接输入 Html 文本做模板 TIWLayoutMgrForm //这应 ...

  2. 使用 IntraWeb (7) - 主模板

    TIWLayoutMgrHTML.TIWTemplateProcessorHTML 属于页面级的模板, 如果要全站统一模板, 当然要用主模板. TIWTemplateProcessorHTML 通过其 ...

  3. 使用 IntraWeb (45) - 活用 IntraWeb

    asp.net 刚开始时, 也是拖拉控件, 但后来有了 MVC.xNext. 换个思路使用 IntraWeb 吧: 界面全部用 html+js+css 实现(有些会是用 Delphi 动态生成), 然 ...

  4. IntraWeb XIV 类型速查表

    tkClass ================== IWUserSessionBase.TIWUserSessionBase < TDataModule < TComponent < ...

  5. 使用delphi+intraweb进行微信开发4—微信消息加解密

    示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. 在上一讲当中我做了个简单的微信文本消 ...

  6. 使用delphi+intraweb进行微信开发3—微信消息处理

    示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. 在第二讲使用delphi+intra ...

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

    在第一讲使用delphi+intraweb进行微信开发1--微信平台接入中我们编写了一个简单的微信接口程序,这个程序我是用Stand Alone Server / Service 方式编译的程序,并且 ...

  8. 使用delphi+intraweb进行微信开发1--微信平台接入

    示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. iw14.0.50来了,在新的版本中 ...

  9. 使用 IntraWeb (42) - 测试读取 SqLite (一)

    为通过 FireDAC(XE5开始支持的) 使用 SqLite, 现在已换成 XE6 + IntraWeb v14.0.32 Ultimate. 首先把官方提供的 C:\Users\Public\Do ...

随机推荐

  1. 20155218 2006-2007-2 《Java程序设计》第5周学习总结

    20155218 2006-2007-2 <Java程序设计>第5周学习总结 教材学习内容总结 java中的错误都会被包装成对象,且是可抛出的. 通常称错误处理为异常处理,程序设计本身的错 ...

  2. google浏览器测试时清理缓存、强制不用缓存刷新快捷键(常用、效率)

    Ctrl+Shift+Del  清除Google浏览器缓存的快捷键  Ctrl+Shift+R  重新加载当前网页而不使用缓存内容

  3. 第八集:魔法阵 NTT求循环卷积

    题目来源:http://www.fjutacm.com/Problem.jsp?pid=3283 题意:给两串长度为n的数组a和b,视为环,a和b可以在任意位置开始互相匹配得到这个函数的值,求这个函数 ...

  4. python3之模块psutil系统性能信息

    psutil是个跨平台库,能够轻松实现获取系统运行的进程和系统利用率,包括CPU.内存.磁盘.网络等信息. 它主要应用于信息监控,分析和限制系统资源及进程的管理.它实现了同等命令命令行工具提供的功能, ...

  5. FTP主动/被动原理

    FTP 主动模式 1.客户端用大于1024的高位端口发起初始化连接到vsftp服务器的21端口 2.vsftp服务器的21端口主动与客户端大于1024的高位端口建立控制连接 3.vsftp服务器的20 ...

  6. linux,mac安装sentry

    linux,mac安装sentry 最近需要一个日志监视系统所以选择了sentry.以下是用mac安装,看需求量linux安装类似后面的文章会补充. 安装docker https://download ...

  7. jquery.validate动态更改校验规则

    有时候表单中有多个字段是相互关联的,以下遇到的就是证件类型和证件号码的关联,在下拉框中选择不同的证件类型,证件号码的值的格式都是不同的,这就需要动态的改变校验规则. 点击(此处)折叠或打开 <! ...

  8. 使用Eclipse运行第一个Go程序

    Windows 10家庭中文版,go version go1.11 windows/amd64, Eclipse IDE for C/C++ Developers Photon Release (4. ...

  9. jquery-css处理

    jquery css处理,包括CSS,位置,尺寸等 一:CSS 使用 说明 例子 css(name|pro|[,val|fn]) 访问匹配元素的样式属性 $("p").css(&q ...

  10. mybatis-config.xml 模板

    ssm模板 <?xml version="1.0" encoding="UTF-8" ?>  <!DOCTYPE configuration  ...