Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   while schleife all 10 interationen mit einer Pause (asu TIMER) (https://www.delphipraxis.net/205045-while-schleife-all-10-interationen-mit-einer-pause-asu-timer.html)

wschrabi 27. Jul 2020 08:35

while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Hallo leute,
ich habe eine Repeat ... until loop und möchte alle 10 Durchläufe eine Pause von 3 sec machen. die Pause möchte ich via timer definieren.
Hat wer ein Bsp oder Rat wie man das machen kann?

DANKE
mfg
Walter

Klaus01 27. Jul 2020 08:38

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Guten Morgen

durchtlauf mod 10 = 0 dann Pause

Grüße
Klaus

himitsu 27. Jul 2020 09:16

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Was ist denn so schwer daran?
* Zeit messen und speichern
* warten bis aktuelle Zeit zu gemessener Zeit mehr/mindestens 10 Sekunden enspricht
** dann die neue aktuelle Zeit speichern

oder
* Zeit Messen + 10 Sekunden und speichern
* warten bis aktuelle Zeit zu gemessener kleiner als gespeicherte
** dann die neue aktuelle Zeit + 10 Sekunden speichern

Delphi-Quellcode:
T := GetTickCount; // oder eine andere Zeitfunktion
while True do begin
  if Integer(GetTickCount - T) > 10 * MSecPerSec then begin // Integer wegen eventuellem Überlauf, wenn der Rechner mehr als 48 Tage läuft
    T := GetTickCount;
    Sleep(10 * MSecPerSec);
  end;
  ...
end;

KodeZwerg 27. Jul 2020 09:26

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Falls das Zielsystem Windows ist und der Umgang mit Delphi's Timer unerwünscht ist, wie wäre es mit dem Windows Timer? Per SetTimer() easy realisierbar.

Jasocul 27. Jul 2020 10:04

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Ich verstehe nicht, wofür der Timer benötigt wird, wenn klar ist, dass alle 10 Durchläufe pausiert werden soll.
Die Länge der Pause lässt sich auch beim
Delphi-Quellcode:
Sleep
definieren. Dafür benötigt man keinen Timer.

KodeZwerg 27. Jul 2020 10:35

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Zitat:

Zitat von Jasocul (Beitrag 1470444)
Ich verstehe nicht, wofür der Timer benötigt wird

Zitat:

Zitat von wschrabi (Beitrag 1470433)
die Pause möchte ich via timer definieren

Abgesehen davon, Sleep() friert den Prozess/das Programm ein.

mkinzler 27. Jul 2020 10:42

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Zitat:

Abgesehen davon, Sleep() friert den Prozess/das Programm ein.
Nein, tut es nicht (mehr)

haentschman 27. Jul 2020 10:49

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Zitat:

Nein, tut es nicht (mehr)
...seit wann? :shock:

Jasocul 27. Jul 2020 10:50

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
@KodeZwerg:
Dass Sleep den Prozess einfriert, weiß ich. :wink:
Zitat:

Zitat von wschrabi (Beitrag 1470433)
... möchte alle 10 Durchläufe eine Pause von 3 sec machen

Zitat:

Zitat von wschrabi (Beitrag 1470433)
die Pause möchte ich via timer definieren.

Alle 10 Durchläufe oder mit Timer? Oder viellecht beides? Also zwei Pausen? Oder soll der Timer dafür sorgen, dass die Pause alle 10 Durchläufe gemacht wird?

Wenn in der Schleife kein Application.ProcessMessages, kommt ein Timer sowieso nicht zum Zug, wenn ich mich richtig erinnere. Ein Timer ist schließlich kein Thread.

Ich denke, dass wir hier mehr Input von Walter benötigen.

KodeZwerg 27. Jul 2020 10:54

AW: while schleife all 10 interationen mit einer Pause (asu TIMER)
 
Zitat:

Zitat von mkinzler (Beitrag 1470449)
Zitat:

Abgesehen davon, Sleep() friert den Prozess/das Programm ein.
Nein, tut es nicht (mehr)

hmpf.... erst mit delphi 10.4? hab ja gerade erst mit 10.3.3 dieses "unendlicher progressbar" demo gemacht und sleep() als einfrierer missbraucht um den mainthread für so und so lange unfähig zu machen.
wenn das so ist, nehme ich meine aussage natürlich zurück und entschuldige mich für diese aussage.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:14 Uhr.
Seite 1 von 2  1 2      

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