program articles_crud; {$APPTYPE CONSOLE} uses System.SysUtils, Winapi.Windows, IdHTTPWebBrokerBridge, Web.WebReq, Web.WebBroker, WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule} , Controllers.Base in 'Controllers.Base.pas', Controllers.Articles in 'Controllers.Articles.pas', Services in 'Services.pas', BusinessObjects in 'BusinessObjects.pas', MainDM in 'MainDM.pas' {dmMain: TDataModule} , Commons in 'Commons.pas'; {$R *.res} procedure RunServer(APort: Integer); var LInputRecord: TInputRecord; LEvent: DWord; LHandle: THandle; LServer: TIdHTTPWebBrokerBridge; begin WriteLn('ARTICLES CRUD Sample. Use articles_crud_vcl_client.dproj to manage data'); WriteLn(Format('Starting HTTP Server on port %d', [APort])); LServer := TIdHTTPWebBrokerBridge.Create(nil); try LServer.DefaultPort := APort; LServer.Active := True; WriteLn('Press ESC to stop the server'); LHandle := GetStdHandle(STD_INPUT_HANDLE); while True do begin ReadConsoleInput(LHandle, LInputRecord, 1, LEvent); if (LInputRecord.EventType = KEY_EVENT) and LInputRecord.Event.KeyEvent.bKeyDown and (LInputRecord.Event.KeyEvent.wVirtualKeyCode = VK_ESCAPE) then break; end; finally LServer.Free; end; end; begin ReportMemoryLeaksOnShutdown := True; try if WebRequestHandler <> nil then WebRequestHandler.WebModuleClass := WebModuleClass; RunServer(8080); except on E: Exception do WriteLn(E.ClassName, ': ', E.Message); end end.