У Вас там есть несколько багов. Во-первых, ShowMessage не будет показываться никогда во время загрузки сервиса, лучше для этой цели использовать вывод в файл. А во-вторых, в моём коде написано:
Код
While not Terminated do
ServiceThread.ProcessRequests(True);
А у Вас FALSE!!!!!!
И лучше всего регистрировать сервис, запуская его с параметром /install А так вроде всё нормально.
З.Ы. И ещё: цикл While not Terminated do... нужен, чтобы сервис не заткнулся - процедура выполняется только один раз! В качестве примера можете взять это:
Код
var f: TextFile;
...
AssignFile(f, 'c:\haha.txt');
While not terminated do
begin
Append(f);
WriteLn(f, 'Привет!');
CloseFile(f);
ServiceThread.ProcessRequests(False); //А вот тут уже нужно false, чтобы сервис не ждал сообщения.
end;
Это позволит Вам проверить работоспособность сервиса...