Thanks Angus, in fact I likewise I have a simple switch at startup to decide whether I'm running in GUI or service mode, which I share below as a way of saying thanks to the 'list' as I did not take on-board the fact that the Svcmgr::Application->CreateForm call means the TService class is dervived from TObject item and that can have a TSslWSocket component on it without any manual message pumps (rather than creating a thread that then creates the SslWSocket):

//---------------------------------------------------------------------------
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        if(FindCmdLineSwitch("GUI"))
        {
            Forms::Application->Initialize();
Forms::Application->CreateForm(__classid(TfrmMain), &frmMain); //(TfrmMain::OnShow then creates the TService based object
            Forms::Application->Run();
        }
        else
        {
if((!Svcmgr::Application->DelayInitialize) || (Svcmgr::Application->Installing()))
            {
                Svcmgr::Application->Initialize();
            }
Svcmgr::Application->CreateForm(__classid(<some class dervived from TService>), &pService);
         Svcmgr::Application->Run();
        }
}


Thanks to all


--
Regards

Paul Read
Partner

Follow us: @nSolve <http://www.twitter.com/nSolve>

*nSolve Ltd*
33-35 Daws Lane
London NW7 4SD
England

www.nsolve.com <http://www.nsolve.com>

Tel: +44 (0) 1993 40 20 11
Tel(US): +1 617 273 2304


On 29/07/2015 08:15, Angus Robertson - Magenta Systems Ltd wrote:
Should I be calling MessageLoop or ProcessMessages?
Neither, Delphi windows services are message driven just like Windows 
applications.
Most of my windows services are actually dual GUI/service, with a simple GUI 
that
does not require any interaction when run as a service.  This makes testing 
vastly
easier, since the program can be run under the Delphi debugger and then 
installed as
a Windows service once it's working.

Originally I wrote a simple service starter application that runs a standard 
Windows
application as a service (with a command argument) and waits for it to finish 
before
stopping, and sends a message if told to stop.  I still sell an application 
using
this technique after 18 years.

The second generation used the SvCom environment from:

http://www.aldynsoftware.com/

which creates a single application that can be run as a service or GUI, just 
drop
components on a form, jkust works, but it's commercial.

For new applications I use DD Service Application Framework written by one of 
the
ICS developers, but his web site seems to be down at the moment.  I think it's 
on
Code Central but search is useless and brings up thousands of results.

Angus


--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to