美文网首页
MyBean简单入门学习(1)

MyBean简单入门学习(1)

作者: abctel | 来源:发表于2019-02-21 14:39 被阅读0次

    exe改造
    1.在项目dpr文件中引用mybean.console单元。

    uses mybean.console;
    

    2.在程序初始化时加载插件

    program Main;
    
    uses
      Vcl.Forms,
      mybean.console,
      Unit_Main in 'Unit_Main.pas' {Form1},
      UIShowAsNormal in '..\interface\UIShowAsNormal.pas';
    
    {$R *.res}
    
    begin
      Application.Initialize;
     //方法1自动加载:该函数调用后默认根据同目录下的[plug-ins\*.plug-ins]或者[*.plug-ins]配置文件内的信息加载DLL文件。
      ApplicationContextInitialize;
     //方法2手动加载:该方法为手动指定需要加载的DLL文件。
      ExecuteLoadLibFiles('plugins\*.dll');
      ExecuteLoadLibFiles('plugins\*.bpl');
      Application.MainFormOnTaskbar := True;
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
    

    3.定义一个接口文件,将需要共享的操作以接口方式调用。

    unit UIShowAsNormal;
    
    interface
    
    type
      IShowForm = interface
      ['{DC71A10B-7EC2-45D8-B2D7-17D78D193C90}']
      procedure ShowAsNoraml;stdcall;
      procedure ShowAsMdi;stdcall;
      end;
    
      IMainPlugCom =interface
        ['{CE4DF363-A5A3-4013-A27C-2A3C4F15E3EB}']
      procedure Receive(msg:PChar);stdcall;
      procedure Send(msg:PChar);stdcall;
      end;
    
    implementation
    
    end.
    

    4.在窗口初始化时将自身放入全局变量,方便其它DLL调用。

    procedure TForm1.FormCreate(Sender: TObject);
    begin
       //设置全局变量
      TMyBeanFactoryTools.SetObject('main',Self); 
    end;
    
    2019/02/21 补充
    需要在窗口单元引用mybean.tools.beanFactory单元才能调用上面函数。
    

    5.修改窗口调用的代码为。

    procedure TForm1.Button3Click(Sender: TObject);
    var
      showf:IShowForm;
    begin
    //将IShowForm对象赋值给showf
      showf :=  TMyBeanFactoryTools.GetBean('plug1') as IShowForm;
    //调用IShowForm的ShowAsNoraml方法显示窗体。
      showf.ShowAsNoraml;
    end;
    

    相关文章

      网友评论

          本文标题:MyBean简单入门学习(1)

          本文链接:https://www.haomeiwen.com/subject/clmryqtx.html