![]() |
AW: Service & on Execute
Dein Dienst hat auch so was wie eine Form (weiß und man kann die Hintergrundfarbe nicht anpassen). Da ziehst du den Timer aus der Komponentenleiste drauf. Der ist übrigens unter System (der erste Eintrag). Um die USES brauchst du dich nicht zu kümmern, das macht Delphi selbst. Dann noch ein paar Einstellungen (wie beschrieben) tätigen und - ganz wichtig - die Ereignisprozedur anlegen (entweder durch Doppelklick auf den Timer oder ... (du weißt schon). -> Fertig
Bernhard |
AW: Service & on Execute
Zitat:
|
AW: Service & on Execute
Zitat:
|
AW: Service & on Execute
Genau :) Beim speichern, was man natürlich sehr häufig macht, wird die uses Clause erweitert.
|
AW: Service & on Execute
Danke für die Antwort das klingt ja schon mal gut!!!
habe jetzt bei dem ServiceStart Event folgendes gemacht:
Delphi-Quellcode:
Im on Execute habe ich jetzt folgendes:
procedure Ttest.ServiceStart(Sender: TService; var Started: Boolean);
begin //Create LOGFILE createlog('test','C:\Temp'); test_time.Create(nil); test_time.Enabled := True; test_time.Interval := 60000; end;
Delphi-Quellcode:
NATÜRLICH bekomme ich da einen Fehler, was habe ich falsch gemacht? :(
procedure Ttest.ServiceExecute(Sender: TService);
begin while not terminated do begin if test_time.OnTimer = onTimer then begin // DO IT end; end; end; |
AW: Service & on Execute
Delphi-Quellcode:
test_time := TTimer.Create(nil);
test_time.Enabled := True; test_time.Interval := 60000; test_time.OnTimer := <Deine selbst geschriebene Methode vom Typ TNotifyEvent>; |
AW: Service & on Execute
ah ok
dh. bei test_time.ontime := <methode> ist der Timer erreicht?! setzt er ihn dann automatisch zurück? bzw. wie würde meine service execute dann aussehen? so oder:
Delphi-Quellcode:
procedure Ttest.ServiceExecute(Sender: TService);
begin while not terminated do begin test_time.OnTimer := <methode> end; test_time.Free; end; |
AW: Service & on Execute
:?::?:
Was hast Du eigentlich vor? |
AW: Service & on Execute
AUA. Sorry, aber ich würde dir an dieser Stelle ein Grundlagentutorial und eines für die Grundlagen von OOP mit Delphi empfehlen.
Du hast jetzt den Timer angelegt. Als weitere Eigenschaft musst du eine Prozedur erstellen (die natürlich eine Methode der Klasse sein muss (keine neue erstellen, du hast schon eine). Diese Prozedur weißt du dann Timer.OnTimer zu. Und dann entfernst du als nächstes mal ganz schnell die OnExecute-Prozedur aus deinem Dienst. Im Normalfall sollte man die nicht brauchen müssen. Bernhard |
AW: Service & on Execute
Was soll das eigentlich mit dem Timer?
der service hat ja nen Thread. Folgender Code piept jede sekunde:
Delphi-Quellcode:
Shalom
procedure Ttest.ServiceExecute(Sender: TService);
begin while not terminated do begin Beep; //Oder ruf hier DEINE Methode auf Sleep(1000); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:05 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 by Thomas Breitkreuz