「hmPy・IronPython」の例題④ .pyファイルの利用

  • 概要

    IronPythonの例題のひとつとなります。

    hmPyでは、秀丸マクロ内に直接IronPythonを埋め込むのではなく、
    外部に別途「.py」としてファイルを用意しても利用可能です(拡張子はなんでもOKです)

    ファイルの文字コードはcp932(sjis)としてください。

    外部のファイルの使用例

    #PY = loaddll( hidemarudir + @"\hmPy.dll" );
    
    #_ = dllfuncw(#PY, "DoFile", currentmacrodirectory + @"\form1.py"); // 外部ファイルの実行
    
    $f_title = dllfuncstrw(#PY, "GetStrVar", "f_title" );
    message("秀丸マクロに戻ってきました:" + $f_title);
    
    #_ = dllfuncw(#PY, "DoString", R"IPY(
    import System
    f_title = f_title.Replace('①', '②') # ①を②に置き換え。
    )IPY"
    );
    $f_title = dllfuncstrw(#PY, "GetStrVar", "f_title" );
    message("再び秀丸マクロに戻ってきました:" + $f_title);
    
    freedll( #PY );
    endmacro;
    
    

    外部の「.py」ファイルを用意

    上記マクロと同じディレクトリに、form1.pyというファイルを用意しましょう。
    ファイルの文字コードはcp932(sjis)なので、気をつけてください。

    # coding: cp932
    import clr
    clr.AddReference('System.Drawing')
    clr.AddReference('System.Windows.Forms')
    
    from System.Drawing import *
    from System.Windows.Forms import *
    
    class MyForm(Form):
        def __init__(self):
            # Pythonのコンストラクタは__init__です。
            pass
    
    
    Application.EnableVisualStyles()
    
    form = MyForm()
    form.Text = '表示①'
    f_title = form.Text # 受け渡し用途
    
    Application.Run(form)