MyBean簡單入門學(xué)習(xí)(1)

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自動加載:該函數(shù)調(diào)用后默認(rèn)根據(jù)同目錄下的[plug-ins\*.plug-ins]或者[*.plug-ins]配置文件內(nèi)的信息加載DLL文件。
  ApplicationContextInitialize;
 //方法2手動加載:該方法為手動指定需要加載的DLL文件。
  ExecuteLoadLibFiles('plugins\*.dll');
  ExecuteLoadLibFiles('plugins\*.bpl');
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

3.定義一個接口文件,將需要共享的操作以接口方式調(diào)用。

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調(diào)用。

procedure TForm1.FormCreate(Sender: TObject);
begin
   //設(shè)置全局變量
  TMyBeanFactoryTools.SetObject('main',Self); 
end;

2019/02/21 補充
需要在窗口單元引用mybean.tools.beanFactory單元才能調(diào)用上面函數(shù)。

5.修改窗口調(diào)用的代碼為。

procedure TForm1.Button3Click(Sender: TObject);
var
  showf:IShowForm;
begin
//將IShowForm對象賦值給showf
  showf :=  TMyBeanFactoryTools.GetBean('plug1') as IShowForm;
//調(diào)用IShowForm的ShowAsNoraml方法顯示窗體。
  showf.ShowAsNoraml;
end;
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容