企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
* 注册窗体服务,引用单元 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']); ~~~