![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сервис после запуска сразу останавливается [D7, WinXP]
Russ © (2006-03-15 12:52:00)Подскажите пожалуйста, есть Service Application, основной код взят из работающего приложения но после запуска он сразу завершается. как сделать чтобы этого не происходило?
Eraser (2006-03-15 14:26:00) [1]да и ещё! на сколько помню надо опеределить обработчики
constructor TMainService.CreateNew(AOwner: TComponent; Dummy: Integer);
begin
inherited CreateNew(AOwner, Dummy);
AllowPause := False;
Interactive := True;
DisplayName := SApplicationName;
Name := SServiceName;
OnStart := Start;
OnStop := Stop;
end;
procedure TMainService.Start(Sender: TService; var Started: Boolean);
begin
Started := True;
end;
procedure TMainService.Stop(Sender: TService; var Stopped: Boolean);
begin
//PostMessage(fmMain.Handle, WM_QUIT, 0, 0);
Stopped := True;
end;
и ещё! в этом случае OnExecute должен быть не определён!
хороший пример сервиса ищи в
C:\Program Files\Borland\Delphi7\Source\Vcl\ScktSrvr.dpr
Eraser (2006-03-15 14:13:00) [2]
> Russ (15.03.06 12:52)
и ещё hint:
если Сергей М. © (15.03.06 14:07) [2] прав, то создавать, по крайней мере, главное окно надо так
SvcMgr.Application.CreateForm(TfmMain, fmMain);, а не
Forms.Application.CreateForm(TfmMain, fmMain);
Eraser (2006-03-15 14:11:00) [3]
> Russ (15.03.06 12:52)
в OnExecute объекта наследника TService должен выполняться код сервиса... чаще всего в цикле.
Что требуется от сервиса?
Сергей М. (2006-03-15 14:07:00) [4]
> основной код взят из работающего приложения
Поди из GUI-приложения ?
И влуплен тот код был тобой безо всяких сомнений и переделок в обработчик одного из событий OnStart/OnStop/OnExecute ? Я угадал ?
Сергей М. (2006-03-15 13:03:00) [5]
> после запуска
Как запускаешь-то ?