Ich würde den gemeinsamen Code in eine (oder mehrere) Klasse(n) auslagern.
Diese Klasse(n) befindet sich wiederum in einer
Unit, die von App und Service benützt wird.
Delphi-Quellcode:
TServerAblauf = class(TObject)
protected
FServer : TIdTcpServer;
public
constructor Create(server : TIdTcpServer);
procedure Execute;
end;
constructor TServerAblauf.Create(server : TIdTcpServer);
begin
inherited Create;
FServer := server;
// hier evtl. noch Events auf eigene Methoden richten
FServer.OnDisconnect := self.DisconnectHandler;
end;
procedure TServerAblauf.Execute;
begin
// dein Code
end;