Delphiでいくつかのさまざまなサービスを作成した後、TService
には、ロギング、例外処理、レジストリの 'Description'プロパティなどのサービスアプリケーションに必要なものが欠けていることがわかりました。TServiceの子孫を作成し、自分のプロパティを公開することは可能ですか?
私はTService
から継承されたTJDService
のような私自身のサービスシェルを作ることが可能かどうか疑問に思っていましたが、オブジェクトインスペクタに 'Description'プロパティが表示されます。このように私自身のサービスシェルを作ることはできますか?私はTService
から継承している自分自身の "デフォルトプロジェクト"を作ることができると知っていますが、それは新しいプロジェクトのすべての私のコードを含んでいます。新しいサービスを作成すると
、それは次のようになります。ただTService
するのではなく、私のTJDService
を使用して、一般的なサービスと同じ
unit Unit1;
interface
uses
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.
、しかし。
RegisterCustomModule - http://docwiki.embarcadero.com/VCL/en/DesignIntf.RegisterCustomModule – OnTheFly
"Embarcadero Technologiesには現在、追加情報はありません。ディスカッションページを使用してこのトピックを文書化してください。P –
Object Inspectorがサービスクラスの公開プロパティを認識できるように、DesigntimeパッケージのRegisterCustomModuleを使用します。必要がない場合は、RegisterCustomModuleを無視するだけで済みます。 –