Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wait(Time)? (https://www.delphipraxis.net/19257-wait-time.html)

Teddyman 31. Mär 2004 09:54


Wait(Time)?
 
Hallo,
habe folgende Wait procedure benutzt:

Delphi-Quellcode:
procedure Wait(time:word);
var start: integer;
begin
 start := GetTickCount;
 while GetTickCount - start <= time do
 Application.ProcessMessages;
end;
Dieses klappt schon, aber gibt es denn was vergleichbares, besseres?

Danke.

[edit=sakura] [delphi]-Tags :-) Mfg, sakura[/edit]

SirThornberry 31. Mär 2004 10:16

Re: Wait(Time)?
 
Delphi-Quellcode:
delay(zeit);
sollte das gleiche machen

runger 31. Mär 2004 10:27

Re: Wait(Time)?
 
Hallo,

bei mir frieren beide Verfahren das aktuelle Fenster ein.
Was mach ich falsch?

Rainer

Luckie 31. Mär 2004 10:36

Re: Wait(Time)?
 
Zitat:

Zitat von SirThornberry
Delphi-Quellcode:
delay(zeit);
sollte das gleiche machen

Kennt mein Delphi nicht (D6 Personal). :gruebel:

@runger: Sollte eigentlich nicht sein. Aber da du uns nicht sagst, wie du es benutzt, kann man dir auch schlecht sagen, wo dein Fehler sein könnte.

Teddyman 31. Mär 2004 10:40

Re: Wait(Time)?
 
Also, d.h.:

Delphi-Quellcode:
procedure Delay(dwMilliseconds: Longint);
var
  iStart, iStop: DWORD;
begin
  iStart := GetTickCount;
  repeat
    iStop := GetTickCount;
    Application.ProcessMessages;
  until (iStop - iStart) >= dwMilliseconds;
end;
und bei jeder gewünschten Stelle dann: delay(....);
eingeben?

[edit=sakura] [delphi]-Tags :roll: Mfg, sakura[/edit]

sakura 31. Mär 2004 10:44

Re: Wait(Time)?
 
@Teddyman: Nutze bitte in Zukunft selbst die Delphi-Tags um Code darzustellen. [delphi]...[/ delphi]

...:cat:...

glkgereon 1. Apr 2004 17:32

Re: Wait(Time)?
 
ja, denk ich mal....
guter tipp aber die sources... :-D :-D :-D

capoero 2. Apr 2004 15:27

Re: Wait(Time)?
 
Hi,
delay :gruebel:

Sleep wäre hier wohl das richtige
Delphi-Quellcode:
sleep(millisekunden);

glkgereon 2. Apr 2004 15:37

Re: Wait(Time)?
 
das alte problem bvei sleep:
es friert das komplette prog ein!!!

Vjay 2. Apr 2004 16:22

Re: Wait(Time)?
 
Gibt nix besseres, könntest höchstens kombinieren.

Delphi-Quellcode:
procedure Delay(dwMilliseconds: Longint);
var
  iStart, iStop: DWORD;
begin
  iStart := GetTickCount;
  repeat
    iStop := GetTickCount;
    Application.ProcessMessages;
    sleep(100);
  until (iStop - iStart) >= dwMilliseconds;
end;
Damit du nicht 100% cpu fährst. Oder benutz für deine Aufgaben den besseren und ordentlichen Weg, sprich: Timer bzw. Threads.

runger 6. Apr 2004 17:16

Re: Wait(Time)?
 
Hallo
hab einen Timer, der wird alle 2 sec durchlaufen. Darin steht ein delay, wie beschrieb, Hauptfenster ruckelt beim bewegen.

Rainer

runger 6. Apr 2004 17:21

Re: Wait(Time)?
 
liegt das vielleicht am Timer?
Rainer

runger 6. Apr 2004 17:27

Re: Wait(Time)?
 
Hallo,
es ist tatsächlich so: im Timer funktioniert das nicht. Weiss jemand warum?
Rainer

glkgereon 9. Apr 2004 14:55

Re: Wait(Time)?
 
also, ich habs so gemacht (und es funzt):
Delphi-Quellcode:
procedure wait(zeit:integer);
var
anfang, ende:integer;
begin
anfang:=time;//time ist die aktuelle systemzeit

repeat
Application.Processmessages;//damits eben NICHT einfriert
ende:=time; //zeit wird genommen
until millisecondabetween(anfang, ende)>=zeit;
//millisecondsbetween, grosses rätsel, was tut die function?????
//richtig!!!!! millisekunden zwiuschen zwei daten / zeiten....

end;

//ja, und das wars auch schon
also, bei mir funzt es so (delphi 6)

runger 10. Apr 2004 11:38

Re: Wait(Time)?
 
Hallo,
das glaub ich dir nicht. Dieser Code läuft so nicht. Was ist time?
Gettime oder was.
Rainer

runger 10. Apr 2004 11:40

Re: Wait(Time)?
 
Hallo
das ist im Grunde genau der Code der im Timer nicht funktioniert!
Das Fenster friert ein, wenn man versucht es zu bewegen!
Rainer

runger 10. Apr 2004 11:44

Re: Wait(Time)?
 
Hallo

millisecondsbetween gibts bei D7 (auch bei D6,D5,D2) nicht!

Rainer

glkgereon 12. Apr 2004 19:57

Re: Wait(Time)?
 
nein, bei mir gibts ne function time, die eine TDateTime zurückgibt, die aktuelle Systemzeit.
gibts das bei dir nicht??? :shock:
dann is klar das dann mein prog am ... ist, aber versuch mal das zu ersetzen durch, ..., zb gettime, getsystime, was auch immer...

glkgereon 12. Apr 2004 19:59

Re: Wait(Time)?
 
und: das fenster friert NICHT ein!!!
dafür is da ein APPLICATION.PROCESSMESSAGES; drin!!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:41 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