AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Service & on Execute

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

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

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
 
#2

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
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

AW: Service & on Execute

  Alt 3. Mai 2011, 14:05
Da man einen Dienst nicht debuggen kann, würde ich mal empfehlen, zuerst eine Anwendung (mit graphischer Oberfläche) zu erstellen und dann mal alles zu implementieren, was du brauchst. Dann kannst du immer noch und ganz einfach alles in den Dienst reinkopieren und da du dir ja vorher sicher warst, dass es geht, geht es auch hinterher.

nur das ich eine delphi console app als Service laufen lassen muss....
Eine Konsolenanwendung hat im Normalfall nichts mit einem Dienst gemeinsam. Man kann das ungefähr so vergleichen: Du hast eine Fenster-Anwendung (GUI/VCL), bei der du das Fenster nicht siehst. Das Fenster ist auch nicht in der Lage, Fenster-Nachrichten zu erhalten (SendMessage geht also nicht). So und dass das jetzt noch zum Dienst wird, läuft das unter einem anderen Benutzerkonto (im Normalfall SYSTEM) und mit dessen Rechten.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
value is NULL

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

AW: Service & on Execute

  Alt 3. Mai 2011, 14:09
hm... naja meine fragen mögen blöd klingen, bin aber ein selbst lerner dh. ich hab das weder in der schule noch sonst wo gelernt.
Hab schon ziemlich viel gemacht mit datenbanken, xml usw usw. Einen Timer habe ich bis dato noch nie benötigt und einen Service schon gar nicht.

ich finde die Sleep Methode einfach aber wie gesagt beim stoppen bekomme ich dann immer, das der Dienst nicht beendet werden kann, warscheinlich weil er sich in der sleep phase befindet oder? Deswegen werde ich wohl um einen Timer nicht rum kommen oder?

ich verstehe das prinzip den Timer einzubauen, das ich jedoch nicht weiß ist, was ich den Timer bei ttest_timer.ontime := ???? mitgeben muss. das ist ja praktisch der moment an dem heruntergezählt wurde oder?
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#5

AW: Service & on Execute

  Alt 3. Mai 2011, 14:11
Dann klatsch doch einfach die Timer-Komponente auf dein Form. Dann einen Doppelklick drauf und dein Ereignis ist angelegt. Dann noch Intervall und Aktivität einstellen -> Fertig.

Ansonsten: Bei OnTimer muss der Name einer Prozedur rein, die du vorher angelegt hast.

Bernhard
Bernhard
Iliacos intra muros peccatur et extra!
  Mit Zitat antworten Zitat
alfold

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

AW: Service & on Execute

  Alt 3. Mai 2011, 14:23
...Ansonsten: Bei OnTimer muss der Name einer Prozedur rein, die du vorher angelegt hast.
Bernhard
in den Vorschlag von mir nicht unbedingt.
Wenn er so macht wie mit den Beep

@value is Null! Bitte erst lesen, dann ausprobieren und wenn was nicht richtig geht wieder nachfragen!
Das hilft Dir mehr, als nur fragen ohne auszuprobieren!

Gruss alfold

Geändert von alfold ( 3. Mai 2011 um 14:27 Uhr)
  Mit Zitat antworten Zitat
value is NULL

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

AW: Service & on Execute

  Alt 3. Mai 2011, 14:25
^hm das mit dem timer drauf klatschen geht schon gut aber wie gesagt
ich weiß nicht wie ich das mit dem ontime in meinem onexecute event aufrufe
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.377 Beiträge
 
Delphi 12 Athens
 
#8

AW: Service & on Execute

  Alt 3. Mai 2011, 16:50
Dann klatsch doch einfach die Timer-Komponente auf dein Form.
Service und Form paßt nicht ganz ... ist das gleiche, wie mit dem schon genannten ShowMessage.

Aber ein DataModul kann man dafür auch sehr gut verwenden.
Und zusätzlich hat man eine Klasse (die des Datamoduls), wo man seine Methoden drin unterbringen kann.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#9

AW: Service & on Execute

  Alt 3. Mai 2011, 18:20
Dann klatsch doch einfach die Timer-Komponente auf dein Form.
Service und Form paßt nicht ganz ... ist das gleiche, wie mit dem schon genannten ShowMessage.
Mir ist klar, dass das, was ein Dienst hat, kein Form ist. Es mangelt mir nur am Namen. Außerdem habe ich in einem Beitrag davor schon darüber gesprochen, dass es einen weißen Hintergrund hat (und somit eigentlich nicht zu verfehlen sein sollte).

Da man einen Dienst nicht debuggen kann...
Wieso kann man einen Dienst nicht debuggen?

Start->Mit Prozess verbinden Prozess auswählen und los geht es!
Dann muss ich bei mir immer wieder was falsch machen, dass es ausgerechnet bei mir nicht geht. Zudem kommt da noch der klitzekleine Unterschied zwischen System-Prozess und Delphi auf Benutzerebene. Es könnte (will Windows jetzt dafür nicht anschmeißen) sogar sein, dass das Rechte-mäßig gar nicht klappt (Edit: es geht, aber ohne Pascal-Code) und wenn es klappen sollte, kommt bei mir immer nur das CPU-Fenster wo kein Delphi-Code drin ist (den hab ich da nämlich noch nicht gefunden, werde es aber gerne nochmal versuchen).


Wenn ich soetwas ähnliches gebraucht habe, habe ich mir immer die aktuelle zeit ausgelesen, 5 Minuten adiert, und in einer while schleife die aktuelle zeit verglichen. ABER wenn ich das bei einem Service mache geht mir die Maschine in die knie!
Sag mal, funktioniert mein Beispiel jetzt etwa doch nicht oder hast du es noch gar nicht ausprobiert? - Und für Warte-Probleme gibt es in der Code-Lib das Delay von negaH, welches alle Probleme umgehen sollte (-> CPU-Auslastung oder nicht-Reaktion von Anwendungen).


Bernhard
Bernhard
Iliacos intra muros peccatur et extra!

Geändert von rollstuhlfahrer ( 3. Mai 2011 um 20:07 Uhr)
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#10

AW: Service & on Execute

  Alt 3. Mai 2011, 16:59
Da man einen Dienst nicht debuggen kann...
Wieso kann man einen Dienst nicht debuggen?

Start->Mit Prozess verbinden Prozess auswählen und los geht es!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:00 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