![]() |
Re: Service und TTimer
wenn ich dann form.show mache bleibt mein Dienst einfach hängen.
|
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. |
Re: Service und TTimer
Zitat:
...:cat:... |
Re: Service und TTimer
nee eigentlich brauch ich dir Form nur wenn ich mit dem ding am weiterentwickeln bin, dafür brauch ich die.
|
Re: Service und TTimer
Hallo,
Zitat:
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: ) |
Re: Service und TTimer
Zitat:
...:cat:... |
Re: Service und TTimer
Nee hatte ich schon einige male gemacht und das klappt alles soweit
|
Re: Service und TTimer
Hier nochmal ein bissel Source
Delphi-Quellcode:
bei dem SHOW bleibt er eben hängen
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. |
Re: Service und TTimer
Und wo ist da jetzt der Timer?
|
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 16:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz