使用 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 属性; 这是我测试用的简单代码(其中包含了前面三个控件名):
户名:{%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的更多相关文章
- 使用 IntraWeb (28) - 基本控件之 TIWTemplateProcessorHTML、TIWLayoutMgrHTML、TIWLayoutMgrForm
TIWTemplateProcessorHTML //使用外部的 html 文件做模板 TIWLayoutMgrHTML //直接输入 Html 文本做模板 TIWLayoutMgrForm //这应 ...
- 使用 IntraWeb (7) - 主模板
TIWLayoutMgrHTML.TIWTemplateProcessorHTML 属于页面级的模板, 如果要全站统一模板, 当然要用主模板. TIWTemplateProcessorHTML 通过其 ...
- 使用 IntraWeb (45) - 活用 IntraWeb
asp.net 刚开始时, 也是拖拉控件, 但后来有了 MVC.xNext. 换个思路使用 IntraWeb 吧: 界面全部用 html+js+css 实现(有些会是用 Delphi 动态生成), 然 ...
- IntraWeb XIV 类型速查表
tkClass ================== IWUserSessionBase.TIWUserSessionBase < TDataModule < TComponent < ...
- 使用delphi+intraweb进行微信开发4—微信消息加解密
示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. 在上一讲当中我做了个简单的微信文本消 ...
- 使用delphi+intraweb进行微信开发3—微信消息处理
示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. 在第二讲使用delphi+intra ...
- 使用delphi+intraweb进行微信开发2—intraweb以.net方式发布(以asp.net mvc4模式部署)在IIS(.net虚拟主机)上
在第一讲使用delphi+intraweb进行微信开发1--微信平台接入中我们编写了一个简单的微信接口程序,这个程序我是用Stand Alone Server / Service 方式编译的程序,并且 ...
- 使用delphi+intraweb进行微信开发1--微信平台接入
示例代码已经放出!请移步使用delphi+intraweb进行微信开发1~4代码示例进行下载,虽为示例代码但是是从我项目中移出来的,封装很完备适于自行扩展和修改. iw14.0.50来了,在新的版本中 ...
- 使用 IntraWeb (42) - 测试读取 SqLite (一)
为通过 FireDAC(XE5开始支持的) 使用 SqLite, 现在已换成 XE6 + IntraWeb v14.0.32 Ultimate. 首先把官方提供的 C:\Users\Public\Do ...
随机推荐
- [整理]WebAPP开发的框架
http://www.zhihu.com/question/27210335 http://ionicframework.com/getting-started/ http://cordova.apa ...
- 通过vnc访问无显卡服务器的图形环境
最近在一台没有显卡的 Power 服务器上,安装了Fedora 22,因为没有显卡,所以不能在本机启动Xserver,于是想通过vnc的方式远程访问服务器的图形环境. 在服务器上安装好xserver和 ...
- iframe引入网页
<!DOCTYPE html> <html> <body> <iframe src="/example/html/demo_iframe.html& ...
- mysql innobackupex 备份及恢复
----------------------------------全量备份恢复-------------------------------------1.生成一个完整的备份 innobackupe ...
- 基于 Apache 在本地配置多个虚拟主机
如何使用 Apache 在本地配置出多个虚拟主机呢?而且使用不同的“域名”来访问本地不同的站点呢? 一般情况下,咱们都使用 localhost 来访问本机上的服务器,在我们的 C:/WINDOWS/s ...
- Ubuntu下SSH安装
step: 1.输入命令: sudo apt-get install openssh-server 2.验证sshserver是否启动了,以下两条命令均可 ps -e | grep ssh netst ...
- FreeMarker使用小记(HelloWorld)
FreeMarker是开源的模板框架.对于它的介绍网上已经很多了.详情可参考主页:http://www.freemarker.org/ 现在我们就开始我们的FreeMarker版的Hello Worl ...
- Hitcon 2016 Pwn赛题学习
PS:这是我很久以前写的,大概是去年刚结束Hitcon2016时写的.写完之后就丢在硬盘里没管了,最近翻出来才想起来写过这个,索性发出来 0x0 前言 Hitcon个人感觉是高质量的比赛,相比国内的C ...
- 2018年东北农业大学春季校赛 C-wyh的商机
一天,你们wyh学长和你们zhl学长玩一个游戏,这个游戏规则是这样的 给你n个城市,保证这n个城市之间都只有一条道路可以到达. 有一件物品,在所有城市中都是一样的,但是由于各个城市的经济发展不同,导致 ...
- 020 shuffle的重要作用,以及分区的实践
一:学shuffle原理的必要性 1.说明 学习shuffle的作用是可以对程序进行优化. 在shuffle这个部分有三个部分需要注意: 分区 排序 分组 这个可以进行优化. 二:分区的实践 1.说明 ...