Delphi-PRAXiS
Seite 2 von 8     12 34     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Service & on Execute (https://www.delphipraxis.net/160218-service-execute.html)

rollstuhlfahrer 3. Mai 2011 10:15

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

DeddyH 3. Mai 2011 10:22

AW: Service & on Execute
 
Zitat:

Zitat von -187- (Beitrag 1098515)
Wenn du die Komponente auf die Form ziehst wird die Uses Clause automatisch erweitert.

Nicht ganz, erst beim Kompilieren (zumindest bei mir).

Die Muhkuh 3. Mai 2011 10:24

AW: Service & on Execute
 
Zitat:

Zitat von DeddyH (Beitrag 1098518)
Zitat:

Zitat von -187- (Beitrag 1098515)
Wenn du die Komponente auf die Form ziehst wird die Uses Clause automatisch erweitert.

Nicht ganz, erst beim Kompilieren (zumindest bei mir).

Speichern reicht auch

-187- 3. Mai 2011 10:27

AW: Service & on Execute
 
Genau :) Beim speichern, was man natürlich sehr häufig macht, wird die uses Clause erweitert.

value is NULL 3. Mai 2011 10:30

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:
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;
Im on Execute habe ich jetzt folgendes:

Delphi-Quellcode:
procedure Ttest.ServiceExecute(Sender: TService);
begin
  while not terminated do
  begin
      if test_time.OnTimer = onTimer then begin
        // DO IT
      end;
  end;
end;
NATÜRLICH bekomme ich da einen Fehler, was habe ich falsch gemacht? :(

DeddyH 3. Mai 2011 10:38

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>;

value is NULL 3. Mai 2011 10:53

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;

Bummi 3. Mai 2011 10:58

AW: Service & on Execute
 
:?::?:

Was hast Du eigentlich vor?

rollstuhlfahrer 3. Mai 2011 11:01

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

Meta777 3. Mai 2011 11:16

AW: Service & on Execute
 
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr.
Seite 2 von 8     12 34     Letzte »    

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