Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: Einen REST-Server mit Delphi/CPP Builder erstellen?
7. Mai 2015, 14:54
Es gibt keine Vorlage dafür, aber ich habe das bei uns so gebaut, dass die VCL-Anwendung, die es ja als Vorlage gibt, sich selbst auch als Dienst installieren kann. Diese unterstützt so bei uns schlicht beides, was nebenbei auch das Debugging deutlich vereinfacht.
Kannst du dazu mal ein Beispiel/Demo Posten? Das würde mich brennend interessieren.
Klar, ist im Anhang
Die Magie ist in der DPR zu finden
Delphi-Quellcode:
program ServiceWithGui;
uses
Vcl.Forms,
Vcl.SvcMgr,
System.SysUtils,
Service.Main in ' Service.Main.pas' {MainService: TService},
Form.Main in ' Form.Main.pas' {MainForm},
Data.Main in ' Data.Main.pas' {MainData: TDataModule};
{$R *.RES}
function IsService: Boolean;
begin
Result := not( FindCmdLineSwitch( ' g', [ ' -' ], true ) or FindCmdLineSwitch( ' -gui', [ ' -' ], false ) );
end;
begin
if IsService then
begin
if not Vcl.SvcMgr.Application.DelayInitialize or Vcl.SvcMgr.Application.Installing then
Vcl.SvcMgr.Application.Initialize;
Vcl.SvcMgr.Application.CreateForm( TMainService, MainService );
Vcl.SvcMgr.Application.CreateForm( TMainData, MainData );
Vcl.SvcMgr.Application.Run;
end
else
begin
Vcl.Forms.Application.Initialize( );
Vcl.Forms.Application.CreateForm( TMainForm, MainForm );
Vcl.Forms.Application.CreateForm( TMainData, MainData );
Vcl.Forms.Application.Run( );
end;
end.
Die EXE mit dem Parameter -g oder --gui gestartet, zeigt eben die VCL-Anwendung, ansonsten reagiert die Anwendung wie ein Service.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
|
|
Zitat
|