AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Service & on Execute

Ein Thema von value is NULL · begonnen am 3. Mai 2011 · letzter Beitrag vom 4. Mai 2011
Antwort Antwort
Meta777

Registriert seit: 8. Sep 2004
Ort: Magdeburg
248 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: Service & on Execute

  Alt 3. Mai 2011, 11:16
Was soll das eigentlich mit dem Timer?
der service hat ja nen Thread.
Folgender Code piept jede sekunde:

Delphi-Quellcode:
procedure Ttest.ServiceExecute(Sender: TService);
begin
  while not terminated do
  begin
    Beep; //Oder ruf hier DEINE Methode auf
    Sleep(1000);
  end;
end;
Shalom
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#2

AW: Service & on Execute

  Alt 3. Mai 2011, 13:11
die idee ist ja recht cool und simpel aber wenn ich zB 5 Minuten warte bis ich wieder etwas tue, kann der Dienst nicht beendet werden. Hängt sich beim beenden jedes mal auf.

Jemand ne Idee?

PS: das einzige was ich vor habe ist, das ich zyklisch einen gewissen ablauf (Datenbankabfragen etc.) durchführe und danach ein paar minuten warte bis zum nächsten durchlauf

Geändert von value is NULL ( 3. Mai 2011 um 13:19 Uhr)
  Mit Zitat antworten Zitat
generic

Registriert seit: 24. Mär 2004
Ort: bei Hannover
2.416 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Service & on Execute

  Alt 3. Mai 2011, 13:20
Für regelmäßige Aufgaben gibt es in Windows die "geplanten Tasks".
-> siehe Systemsteuerung

Das sind einfache Programm/Skripte welche nach Regeln aufgerufen werden. z.B. mach mal alle 5 Minuten...

Das ist auch viel einfacher, als einen Dienst oder ähnliches hinzustellen.
Coding BOTT - Video Tutorials rund um das Programmieren - https://www.youtube.com/@codingbott
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#4

AW: Service & on Execute

  Alt 3. Mai 2011, 13:22
nur das ich eine delphi console app als Service laufen lassen muss....
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Service & on Execute

  Alt 3. Mai 2011, 13:25
Hier noch ein simpler Vorschlag
nimm deinen timer, im timer dann:

Delphi-Quellcode:
Procedure Timer
begin
   inc(a);
end;


procedure Ttest.ServiceExecute(Sender: TService);
begin
  while not terminated do
  begin
    if a >= 10 then
    begin
       Beep; //Oder ruf hier DEINE Methode auf
       a:= 0;
    end;
 end;
end;
Gruss alfold
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#6

AW: Service & on Execute

  Alt 3. Mai 2011, 13:33
ach sch*** jetzt blick ich mich nicht durch...

kannst du mir das erklären damit ich das verstehe´?!
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.660 Beiträge
 
Delphi 12 Athens
 
#7

AW: Service & on Execute

  Alt 3. Mai 2011, 13:35
Wenn der Timer feuert, wird a um 1 erhöht. Hat a die 10 erreicht oder überschritten, wird ein Ton ausgegeben und a wieder auf 0 gesetzt, das Spiel beginnt also von vorn.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
value is NULL

Registriert seit: 10. Sep 2010
249 Beiträge
 
#8

AW: Service & on Execute

  Alt 3. Mai 2011, 13:44
ja aber wann wird er hier erhöht?

Delphi-Quellcode:
procedure Ttest.ServiceExecute(Sender: TService);
begin
  while not terminated do
  begin
    if a >= 10 then
    begin
       Beep; //Oder ruf hier DEINE Methode auf
       a:= 0;
    end;
 end;
end;
müsste man hiern icht irgendwo a := a + 1 einbauen?
  Mit Zitat antworten Zitat
alfold

Registriert seit: 29. Jun 2010
Ort: Neustrelitz
393 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Service & on Execute

  Alt 3. Mai 2011, 13:58
Nein zurückgesetzt!
Wenn der Timerinteval auf 1000 gleich (1sec) steht, wird jede sec a um 1 erhöht. (inc(a) entspricht a:=a+1
Ergo wird ca alle 10 sec der beep ausgelöst oder das was du da machen willst. Dann wird a wieder auf 0 gesetzt.
Nun dauert es wieder 10 sec und das spiel beginnt von vorn!

Hat @DeddyH doch geschrieben , oder war es nicht verständlich

Wenn es so ist, dann fehlen Dir aber die elementarsten Grundlagen.

Gruss alfold
  Mit Zitat antworten Zitat
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
535 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Service & on Execute

  Alt 3. Mai 2011, 13:58
die idee ist ja recht cool und simpel aber wenn ich zB 5 Minuten warte bis ich wieder etwas tue, kann der Dienst nicht beendet werden. Hängt sich beim beenden jedes mal auf.

Jemand ne Idee?
Delphi-Quellcode:
procedure Ttest.ServiceExecute(Sender: TService);
var
  c: Integer;
begin
  c:= 0;
  while not terminated do
  begin
    inc(c);
    if c:= 60 then
    begin
      // ruf hier DEINE Methode auf
      c:= 0;
    end;
    Sleep(1000);
  end;
end;
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.

Geändert von taveuni ( 3. Mai 2011 um 14:00 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 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