ホームページ >ウェブフロントエンド >htmlチュートリアル >【QMacros】複雑なマクロパラメータの転送_html/css_WEB-ITnose

【QMacros】複雑なマクロパラメータの転送_html/css_WEB-ITnose

WBOY
WBOYオリジナル
2016-06-21 08:53:261134ブラウズ

QMacros のマクロはパラメーターの受け渡しをサポートしており、そのパラメーターの形式は JSON を参照して実行されるため、QMacros のパラメーターは JSON のすべてのデータ型 (null、true/false、数値、文字列) をサポートします。 、オブジェクト、配列の文字列の内容のエスケープも JSON の規則に従います。

[注意]

QMacros が Complie または Replace を呼び出すときにフラグ ビットが MRF_ENABLE_ESCAPE を指定し、同時に MRF_IN_DBL_QUOTER または MRF_IN_SINGLE_QUOTER が指定されている場合、JSON 内の文字列はエスケープされます。文字列内の文字列は解析され、直接エスケープされるため、パラメータ内の文字列にエスケープが含まれる場合は、二重のバックスラッシュを使用すること、つまり、 "arnb" は "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\t2016"},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;

情報マクロは 2 つのパラメーターを提供します。 :

  • 最初のパラメータとしての JSON 形式のオブジェクト: {"name":"QDAC","version":1.28,"copyright":"©QDAC Teamt2016"}
  • 2 番目のパラメーターとしての浮動小数点値: 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 の使用法に従ってマクロによって渡されるパラメーターを使用できます。これについては詳しく説明しません。

上記の例の実際の実行効果:

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。