Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Service und TTimer (https://www.delphipraxis.net/126947-service-und-ttimer.html)

Digielm 5. Jan 2009 14:38

Re: Service und TTimer
 
wenn ich dann form.show mache bleibt mein Dienst einfach hängen.

nahpets 5. Jan 2009 14:39

Re: Service und TTimer
 
Hallo,

wie machst Du das mit dem Formular im Dienst, wo wird das Formular erstellt und bist Du sicher, dass es zur Laufzeit erstellt wird?

Meine Dienste sind alle mit Delphi 7 erstellt.
Die eigene Komponente ist dahingehend erweitert, dass sie alle 5 oder 15 Minuten oder zur vollen Stunde, um 24 Uhr... pünktlich startet, unabhängig von dem Zeitpunkt, zu dem Enabled auf True gesetzt wird. Beim Aktivieren wird halt das Timerintervall errechnet, das erforderlich ist, um "pünktlich" zu starten.

sakura 5. Jan 2009 14:39

Re: Service und TTimer
 
Zitat:

Zitat von Digielm
wenn ich dann form.show mache bleibt mein Dienst einfach hängen.

Wie schon gefragt, wozu ist das Form überhaupt da? Brauchst Du dieses wirklich, wenn es eh nie ein Anwender sieht...

...:cat:...

Digielm 5. Jan 2009 14:40

Re: Service und TTimer
 
nee eigentlich brauch ich dir Form nur wenn ich mit dem ding am weiterentwickeln bin, dafür brauch ich die.

nahpets 5. Jan 2009 14:42

Re: Service und TTimer
 
Hallo,
Zitat:

Zitat von Digielm
wenn ich dann form.show mache bleibt mein Dienst einfach hängen.

Dienst und Formular, schließt sich das nicht gegenseitig aus?
Beim Show wird das Formular aktiv und wartet auf Benutzeraktionen, dass ist bei 'nem Dienst nicht unbedingt sinnvoll (zumal, wenn man das Formular nicht zu sehen bekommt :wink: )

sakura 5. Jan 2009 14:42

Re: Service und TTimer
 
Zitat:

Zitat von Digielm
nee eigentlich brauch ich dir Form nur wenn ich mit dem ding am weiterentwickeln bin, dafür brauch ich die.

Ich verstehe jetzt nichts - und mangels dessen klinke ich mich hier aus. Wozu einen Kopf machen, wenn ich keinen vernünftigen Input bekomme ;)

...:cat:...

Digielm 5. Jan 2009 14:49

Re: Service und TTimer
 
Nee hatte ich schon einige male gemacht und das klappt alles soweit

Digielm 5. Jan 2009 14:59

Re: Service und TTimer
 
Hier nochmal ein bissel Source

Delphi-Quellcode:
unit Service;

interface

uses
  System.Drawing, System.Collections, System.ComponentModel, Borland.Vcl.ExtCtrls,
  System.Windows.Forms, System.Data, system.serviceprocess, System.Configuration.Install;

type
//  [RunInstaller(true)]
  TService1 = class(System.ServiceProcess.ServiceBase)
  {$REGION 'Vom Designer verwalteter Code'} 
  strict private
    /// <summary>
    /// Erforderliche Designervariable.
    /// </summary>
    Components: System.ComponentModel.Container;
    /// <summary>
    /// Erforderliche Methode zur Unterstützung des Designers - 
    /// ändern Sie die Methode nicht mit dem Quelltext-Editor
    /// </summary>
    procedure InitializeComponent;
  {$ENDREGION} 
  strict protected
    /// <summary>
    /// Ressourcen nach der Verwendung bereinigen
    /// </summary>
    procedure Dispose(Disposing: Boolean); override;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  strict protected
    procedure OnStop; override;
    procedure OnStart(args: array of string); override;
  public
    constructor Create;
  end;
//
var
  Service1: TService1;

// [assembly: RuntimeRequiredAttribute(TypeOf(ServiceBase))]

implementation

uses Main;

//{$R *.nfm}
{$AUTOBOX ON} 

{$REGION 'Vom Windows Form-Designer erzeugter Code'} 
/// <summary>
/// Erforderliche Methode zur Unterstützung des Designers -- 
/// ändern Sie die Methode nicht mit dem Quelltext-Editor
/// </summary>
procedure TService1.InitializeComponent;
begin
  Self.Components := System.ComponentModel.Container.Create;
  Self.ServiceName := 'SAPConnect';
end;
{$ENDREGION}

procedure TService1.Dispose(Disposing: Boolean);
begin
  if Disposing then
  begin
    if Components <> nil then
      Components.Dispose();
  end;
  inherited Dispose(Disposing);
end;

constructor TService1.Create;
begin
  inherited Create;
  //
  // Erforderlich für die Unterstützung des Windows Forms-Designers
  //
  InitializeComponent;
  //
//  MessageBox.show('created');
  // TODO: Fügen Sie nach dem Aufruf von InitializeComponent Konstruktorcode hinzu.
  // 
end;


procedure TService1.onstop;
begin
//
end;

procedure TService1.OnStart(args: array of string);
begin
  Testform := TTestform.Create(self);
  Testform.show;
end;

end.
bei dem SHOW bleibt er eben hängen

Luckie 5. Jan 2009 15:01

Re: Service und TTimer
 
Und wo ist da jetzt der Timer?

Sherlock 5. Jan 2009 15:02

Re: Service und TTimer
 
Der liegt auf dem Testform.

Kann ja nicht gehen, da hier schon oft gesagt wurde: Dienst + Form = No go.

Sherlock


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:32 Uhr.
Seite 2 von 4     12 34      

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