Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#18

AW: Einen REST-Server mit Delphi/CPP Builder erstellen?

  Alt 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.
Angehängte Dateien
Dateityp: zip ServiceWithGui.zip (3,0 KB, 110x aufgerufen)
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)
  Mit Zitat antworten Zitat