[QMacros] 复杂宏参数的传递_html/css_WEB-ITnose

php中文网
发布: 2016-06-21 08:53:26
原创
1353人浏览过

qmacros 的宏支持传递参数,其参数的格式参照 json 执行,所以 qmacros 的参数支持 json 所有的数据类型:null、true/false、数值、字符串、对象和数组,字符串中内容的转义也遵守 json 的规则。

【注意】

如果 QMacros 调用 Complie 或 Replace 时,标志位指定了 MRF_ENABLE_ESCAPE,并同时指定了 MRF_IN_DBL_QUOTER 或MRF_IN_SINGLE_QUOTER 两者之一,则 JSON 中的字符串转义时,由于字符串中的会被解析,所以造成直接被转义,所以一般建议参数中的字符串如果包含转义时,采用双反斜线,即 “a b” 应为 “a\r\nb”。

【示例】

下面是 QMacros 的 HTML 模板示例里的一段代码:

procedure TForm1.Button3Click(Sender: TObject);const  STemplate: QStringW = '<html><head><title><%Title%></title></head>' + //    '<body>多参数及转义示例<p>' + //    '<%Info({"name":"QDAC","version":1.28,"copyright":"&copy;QDAC team	2016"},3.0)%>'    + '</body>';var  AMacros: TQMacroManager;  AHtmlFile: String;begin  AMacros := TQMacroManager.Create;  try    AMacros.Push('Title', 'QMacros HTML 模板示例');    AMacros.Push('Info', DoPrintInfo);    AHtmlFile := ExtractFilePath(Application.ExeName) + 'index.html';    SaveTextW(AHtmlFile, AMacros.Replace(STemplate, '<%', '%>',      MRF_PARSE_PARAMS));    WebBrowser1.Navigate('file:///' + StringReplaceW(AHtmlFile, '', '/',      [rfReplaceAll]));  finally    FreeAndNil(AMacros);  end;end;
登录后复制

立即学习前端免费学习笔记(深入)”;

AI Sofiya
AI Sofiya

一款AI驱动的多功能工具

AI Sofiya 103
查看详情 AI Sofiya

其中的 Info 宏提供了两个参数:

  • 一个 JSON 格式的对象作为第一个参数: {“name”:”QDAC”,”version”:1.28,”copyright”:”©QDAC team 2016″}
  • 一个浮点值作为第二个参数: 3.0

我们看下 DoPrintInfo 宏的实现:

procedure TForm1.DoPrintInfo(AMacro: TQMacroItem; const AQuoter: QCharW);beginAMacro.Value.Value:='QMacros '+AMacro.Params[1].AsString+'<BR/>';with AMacro.Params[0] do  begin  AMacro.Value.Value:=AMacro.Value.Value+'工程名称:'+ValueByName('name','')+'<BR/>'+    '版本号:'+ValueByName('version','')+'<BR/>'+    '版权:'+ValueByName('copyright','');  end;end;
登录后复制

AMacro 是要赋值的宏对象,我们赋值时,将结果指定到 AMacro.Value.Value 上就可以。AMacro.Params 是一个 TQJson 数组类型的对象,我们可以完全按照 QJson 的用法,使用宏传递过来的参数,在些就不再缀述了。

上面的示例的实际运行效果:

HTML速学教程(入门课程)
HTML速学教程(入门课程)

HTML怎么学习?HTML怎么入门?HTML在哪学?HTML怎么学才快?不用担心,这里为大家提供了HTML速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号