Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi OnExecute/OnStart/etc. des Dienstes werden nicht aufgerufen (https://www.delphipraxis.net/90040-onexecute-onstart-etc-des-dienstes-werden-nicht-aufgerufen.html)

CalganX 10. Apr 2007 21:12


OnExecute/OnStart/etc. des Dienstes werden nicht aufgerufen
 
Hi,
ich habe mir einen Service programmiert, der folgendermaßen aussieht:
Delphi-Quellcode:
procedure TInfoTunesService.ServiceContinue(Sender: TService;
  var Continued: Boolean);
begin
  ShowMessage('OnContinue');
  FTCPServer.Resume;
  Continued := true;
end;

procedure TInfoTunesService.ServiceCreate(Sender: TObject);
begin
  MessageBox(0, 'Der Service wird erstellt', 'Info',
    MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
//  FTCPServer := TTCPDaemon.Create;
//  FTCPServer.Execute;
end;

procedure TInfoTunesService.ServiceExecute(Sender: TService);
begin
  MessageBox(0, 'Der Service wird ausgeführt', 'Info',
    MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
  // Endlosschleife ftw
  while not Terminated do begin
    ServiceThread.ProcessRequests(True);
  end;
end;

procedure TInfoTunesService.ServicePause(Sender: TService; var Paused: Boolean);
begin
  ShowMessage('OnPause');
  FTCPServer.Suspend;
  Paused := true;
end;

procedure TInfoTunesService.ServiceStart(Sender: TService;
  var Started: Boolean);
begin
  MessageBox(0, 'Der Service startet', 'Info',
    MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
  FTCPServer := TTCPDaemon.Create;
  Started := true;
end;

procedure TInfoTunesService.ServiceStop(Sender: TService; var Stopped: Boolean);
begin
  MessageBox(0, 'Der Service wurde beendet', 'Info',
    MB_OK + MB_TOPMOST + MB_SERVICE_NOTIFICATION);
  FTCPServer.Terminate;
  Stopped := true;
end;
Anhand der Messageboxen weiß ich jetzt, dass lediglich OnCreate des Service aufgerufen und danach der ganze Service beendet wird.

Ich kann mir darauf keinen Reim machen. Kann mir das jemand erklären?

Chris


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz