zoukankan      html  css  js  c++  java
  • 脚本宿主程序

    宿主的功用:

    装载.dfm文件动态生成窗体;

    注册动态生成窗体中的类,对象,属性,方法,函数,从而让脚本引擎能够操作它们。

    下面以TMS SCRIPTER STUDIO为例:

     unit uMain;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, atScript, atPascal;

    type
      TFormMain = class(TForm)
        MainMenu1: TMainMenu;
        Scripter: TatPascalScripter;
        m1: TMenuItem;
        N11: TMenuItem;
        N21: TMenuItem;
        procedure N11Click(Sender: TObject);
        procedure N21Click(Sender: TObject);
      private
        { Private declarations }
        procedure LoadScript(Sender: TComponent; const DFMFile, PSCFile,
          InitProc: string);
        // params: Sender--宿主窗体  DFMFile--界面脚本文件  PSCFile--业务脚本  InitProc--调用脚本的初始化方法
      public
        { Public declarations }
      end;

    var
      FormMain: TFormMain;

    implementation

    {$R *.dfm}

    uses uClass, Unit1, Unit2;

    procedure TFormMain.LoadScript(Sender: TComponent; const DFMFile, PSCFile,
      InitProc: string);
    begin
      uClass.LoadFromDFM(DFMFile, Sender);          // 装载界面
      Scripter.AddComponents(Sender);               // 让脚本认识窗体中的对象
      uClass.PianLiComps(Sender, Scripter);
      Scripter.SourceCode.Clear;
      Scripter.SourceCode.LoadFromFile(PSCFile);  // 装载业务
      scripter.ExecuteSubroutine(InitProc);       // 调用脚本的初始化方法
    end;

    procedure TFormMain.N11Click(Sender: TObject);
    begin
      LoadScript(form1, '1.dfm', '1.psc', 'init');
    end;

    procedure TFormMain.N21Click(Sender: TObject);
    begin
      LoadScript(Form2, '2.dfm', '2.psc', 'init');
    end;

    end.

  • 相关阅读:
    C#正则表达式(2):常用的特殊字符(元字符,限定字符)
    asp.net中路径
    C#正则表达式常用元字符
    iTextSharp插入图像
    iTextSharp中中文显示实例
    asp.net中MD5
    sql语句操作数据库之新增
    asp.net使用uploadify上传文件不能超过4mb的解决方案
    在浏览器地址栏中执行js代码
    MSSQL系统常用全局变量
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940953.html
Copyright © 2011-2022 走看看