delphi – 是否可以创建TService的后代并发布我自己的属性?

delphi – 是否可以创建TService的后代并发布我自己的属性?,第1张

概述在Delphi中提供了一些不同的服务后,我意识到TService缺少服务应用程序应该带来的一些必要的东西,例如日志记录,异常处理和注册表中的“描述”属性. 我想知道我是否可以创建自己的服务shell,例如TJDService,它继承自TService,但还有一些额外的东西,例如在对象检查器中显示的“Description”属性.我可以像这样制作自己的服务外壳吗?我知道我可以创建自己的“默认项目”继 在Delphi中提供了一些不同的服务后,我意识到TService缺少服务应用程序应该带来的一些必要的东西,例如日志记录,异常处理和注册表中的“描述”属性.

我想知道我是否可以创建自己的服务shell,例如TJDService,它继承自TService,但还有一些额外的东西,例如在对象检查器中显示的“Description”属性.我可以像这样制作自己的服务外壳吗?我知道我可以创建自己的“默认项目”继承自TService,但包括我的所有代码和任何新项目.

创建新服务时,它应如下所示:

unit Unit1;interfaceuses  WinAPI.windows,WinAPI.Messages,System.SysUtils,System.Classes,Vcl.SvcMgr,JDServices;type  TJDService1 = class(TJDService)  private  public    function GetServiceController: TServiceController; overrIDe;  end;var  JDService1: TJDService1;implementation{$R *.DFM}procedure ServiceController(CtrlCode: DWord); stdcall;begin  JDService1.Controller(CtrlCode);end;function TJDService1.GetServiceController: TServiceController;begin  Result := ServiceController;end;end.

与典型服务相同,但使用我的TJDService而不仅仅是TService.

解决方法 简单的问题与一个简单的答案.是的,你可以这样做.我自己这样做是为了在我公司的代码库中实现的各种服务之间共享代码.

RegisterCustomModule是使您的Description属性显示在Object Inspector中的方法.话虽如此,我发现在Object Inspector中设置这些服务属性的能力并不是那么有价值.我认为在运行时在代码中设置它们是完全可以接受的,但是这个决定取决于个人偏好.

即使您使用RegisterCustomModule使IDE知道您的服务类,默认的新服务应用程序也不会使用您的服务类.您可以根据需要自定义默认服务应用程序,然后将其保存到Object Repository.

我的答案here显示了我如何实现一个可以作为服务运行的应用程序,也可以作为标准桌面进程运行以进行调试.

总结

以上是内存溢出为你收集整理的delphi – 是否可以创建TService的后代并发布我自己的属性?全部内容,希望文章能够帮你解决delphi – 是否可以创建TService的后代并发布我自己的属性?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1223757.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存