Du kannst den Dienstcode in einer Konsole ausführen lassen. Dazu einfach direkt den Code im Hauptprogramm aufrufen. Du willst ja Compilerdirektiven verwenden, dann kannst du mit IFDEF usw das machen.
Zudem kannst du in Delphi 200x Kopien der Einstellungen im Projektmanager anfertigen und dort dann die Compilerdirektive verwenden.
Da gibt es z.B. Debug und Release und du könntest noch Debug Console und Release Console hinzufügen und dort die notwendige Compilerdirektive in den Einstellungen setzen.
Natürlich kannst du keine Dienstspezifischenaufrufe machen, z.b. den Servicemanager (Stop, Start, Pause, Parameter).
Delphi-Quellcode:
{$IFNDEF CMD}
SvcMgr.Application.Initialize;
SvcMgr.Application.CreateForm(...);
SvcMgr.Application.Run;
{$ELSE}
SV := TServiceThread.Create;
Sv.DoExecute(); //ruft intern Execute auf, da es nicht sichtbar ist
{$ENDIF}