* 注册窗体服务,引用单元 qplugins_vcl_formsvc
~~~
function RegisterFormService(const APath, AName: QStringW; AForm: TForm)
: IQFormService; overload;
function RegisterFormService(const AId: TGuid; const APath, AName: QStringW;
AForm: TForm): IQFormService; overload;
function RegisterFormService(const APath, AName: QStringW; AClass: TFormClass;
AMultiInstance: Boolean = True): IQFormService; overload;
function RegisterFormService(const AId: TGuid; const APath, AName: QStringW;
AClass: TFormClass; AMultiInstance: Boolean = True): IQFormService; overload;
~~~
* 注册窗体或非窗体服务 **必需实现IQService接口** , 引用单元 qplugins
~~~
//AServices:服务列表,必需实现IQService接口
procedure RegisterServices(AParent: PWideChar; AServices: array of IQService);
//以下是注册过程
initialization
// 注册 /Services/Docks/Frame 服务
RegisterServices('Services/Docks',
[TDockInstanceService.Create(IDockableControl, 'Frame2')]);
finalization
// 取消服务注册
UnregisterServices('Services/Docks', ['Frame2']);
//或可以这样
initialization
RegisterServices('Services', [TParamTestService.Create(IParamTestService,
'Params')]);
finalization
UnregisterServices('Services', ['Params']);
~~~
所有注册的服务都是通过 UnregisterServices 来取消注册的
~~~
/// <summary>
/// 取消一组服务的注册
/// </summary>
/// <param name="APath">
/// 服务的父路径
/// </param>
/// <param name="AServices">
/// 要取消注册的服务名称列表
/// </param>
procedure UnregisterServices(APath: PWideChar; AServices: array of QStringW);
//如下调用,
finalization
UnregisterServices('/Services/Docks/Forms', ['DLL_Static','DLL_StaticMuti']);
~~~