博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 IntraWeb (6) - 页面模板: TIWLayoutMgrHTML、TIWTemplateProcessorHTML
阅读量:5899 次
发布时间:2019-06-19

本文共 1658 字,大约阅读时间需要 5 分钟。

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.
完成, 运行效果图:

o_w6a1.png

测试二: 在 TIWRegion 中使用模板

就在上面的基础上修改下吧, 步骤:
1. 先添加 IWRegion1
2. 把刚才的 IWEdit1、IWEdit2、IWButton1 复制到 IWRegion1
3. 设置 IWRegion1 的 LayoutMgr 属性为 IWLayoutMgrHTML1
4. 清空窗体的 LayoutMgr 属性(它们不能使用同一个模板)
运行效果图:

o_w6a2.png

测试三: 使用 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> 就好了.

转载地址:http://ychsx.baihongyu.com/

你可能感兴趣的文章
VI一个终端编辑多个文件的命令
查看>>
.gitignore无效的情况的原因和处理方法
查看>>
130512
查看>>
ASP.Net Jquery 随机验证码 文本框判断
查看>>
ReSharper 配置及用法
查看>>
【python】-- 类的装饰器方法、特殊成员方法
查看>>
margin:xx auto无效原因,盒子模型实质,应用注意。
查看>>
My97DatePicker 日期控制,开始时间不能>结束时间,结束时间不能<开始时间
查看>>
Unity3D--学习太空射击游戏制作(一)
查看>>
iOS开发多线程篇—自定义NSOperation
查看>>
ASP.NET MVC如何实现自定义验证(服务端验证+客户端验证)
查看>>
STM32 DFU -- Device Firmware Upgrade
查看>>
protel 99se 加载库文件 files not recognised 解决办法-转
查看>>
支付宝钱包手势密码破解实战(root过的手机可直接绕过手势密码)
查看>>
Swift编程语言的相关资料
查看>>
一些好的技术类博客和学习网站(持续更新中)
查看>>
mvc的自带json序列化的datetime在js中的解析
查看>>
机房收费系统重构中的一些感受
查看>>
Python 函数返回多值
查看>>
Oracle 数据库导入导出 dmp文件
查看>>