last updated:2024/04/20

Hidemaru Q and A

第III部〜秀丸マクロのいろはにほへと
 レンダリング枠


レンダリング枠

レンダリング枠は、秀丸マクロと相互のやりとりができるブラウザ枠みたいなものです。マクロ(renderpanecommand文/関数)からしか呼び出せません。ローカルのhtml及びlocalhost(自PC内のサーバー)に接続可能です。相互でやりとりができるので html/css/JavaScript でマクロ用GUI も作れます。

詳細は秀丸エディタ Ver9.22の新機能 レンダリング枠秀丸エディタ マクロ言語ヘルプ - レンダリング枠を参照してください。

レンダリング枠用命令の補足

各コマンドの詳細に関しては、以下のヘルプを参照してください。

renderpanecommand文/関数

JavaScriptでjson形式やオブジェクトを使って指定する場合は、renderpanecommand文/関数 だけでほぼ全て操作が可能です。

秀丸マクロから操作する場合は、renderpanecommand と setrenderpanetarget文を併用した方がマクロを書きやすい場合もあります。

秀丸マクロからjson文字列と変数を組み合わせる場合は文字列変数の合成する方法もありますが、 strreplace関数、sprintf関数を使う方法もあります。

  • sprintfを使う方法

    //sprintfを使う方法(json文字列内に"%"があると書式指定子と認識されてしまう場合があるので注意する)
    $dailog_base = """
        {
            "target":"rendering#1",
            "show":1,
            "uri":"file:///c:/folder/rendering.html",
            "place":"%s"
        }
        """;
    //枠の位置を切り替えるために変数にしておく
    $place = "leftside";
    //sprintfを使ってjson文字列を完成させる
    $json_str = sprintf($dailog_base, $place);
    //コマンドを実行
    renderpanecommand $json_str;
  • strreplaceを使う方法

    //strreplaceを使う方法
    $dailog_base = """
        {
            "target":"rendering#1",
            "show":1,
            "uri":"file:///c:/folder/rendering.html",
            "place":"%place%"
        }
        """;
    //枠の位置を切り替えるために変数にしておく
    $place = "leftside";
    //strreplaceを使ってjson文字列を完成させる
    $json_str = strreplace($dailog_base, "%place%", $place);
    //コマンドを実行
    renderpanecommand $json_str;

ページトップ 目次に戻る