AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein while schleife all 10 interationen mit einer Pause (asu TIMER)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von wschrabi · begonnen am 27. Jul 2020 · letzter Beitrag vom 28. Jul 2020
Antwort Antwort
Seite 1 von 2  1 2      
wschrabi

Registriert seit: 16. Jan 2005
448 Beiträge
 
#1

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

  Alt 27. Jul 2020, 09:35
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
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#2

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

  Alt 27. Jul 2020, 09:38
Guten Morgen

durchtlauf mod 10 = 0 dann Pause

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 27. Jul 2020, 10:16
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;
$2B or not $2B

Geändert von himitsu (27. Jul 2020 um 10:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#4

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

  Alt 27. Jul 2020, 10:26
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.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#5

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

  Alt 27. Jul 2020, 11:04
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 Sleep definieren. Dafür benötigt man keinen Timer.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

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

  Alt 27. Jul 2020, 11:35
Ich verstehe nicht, wofür der Timer benötigt wird
die Pause möchte ich via timer definieren
Abgesehen davon, Sleep() friert den Prozess/das Programm ein.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#7

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

  Alt 27. Jul 2020, 11:42
Zitat:
Abgesehen davon, Sleep() friert den Prozess/das Programm ein.
Nein, tut es nicht (mehr)
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#8

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

  Alt 27. Jul 2020, 11:49
Zitat:
Nein, tut es nicht (mehr)
...seit wann?
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.355 Beiträge
 
Delphi 11 Alexandria
 
#9

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

  Alt 27. Jul 2020, 11:50
@KodeZwerg:
Dass Sleep den Prozess einfriert, weiß ich.
... möchte alle 10 Durchläufe eine Pause von 3 sec machen
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.
Peter
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#10

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

  Alt 27. Jul 2020, 11:54
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.
Gruß vom KodeZwerg
  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 22:37 Uhr.
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