Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Schleife erst wiederholen, wenn Vorgang abgeschlossen ist ?? (https://www.delphipraxis.net/23782-schleife-erst-wiederholen-wenn-vorgang-abgeschlossen-ist.html)

Nicolai1234 9. Jun 2004 16:41


Schleife erst wiederholen, wenn Vorgang abgeschlossen ist ??
 
Ich möchte eine Schleife bauen, die alle 100 ms das gleiche tut!
Vom Prinzip her reicht ja ein Timer! Nur leider ist die procedure die dann jedes mal ausgelöst wird so lang, dass ich angst habe, dass der Computer zum berechnen länger als 100ms braucht!
Wie kann ich es so machen, das er eine procedure immer dann wiederholt, wenn er sie "durchgerechnet" hat und min. 100 ms vergangen sind?

Hoffe ihr versteht was ich meine!
Danke im Voraus
Nicolai

PS: Ein besserer Titel fiel mir nicht ein!

sakura 9. Jun 2004 16:43

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Die Prozedur wird erst wieder aufgerufen, wenn diese abgearbeitet wurde.

Eine Ausnahme könnte sein, wenn Du inerhalb dieser Application.Processmessages aufrufst.

...:cat:...

Smokey 9. Jun 2004 16:48

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Du könntest auch weiterhin Timer nutzen und diesen im Ontimer Event ausstellen.
Dann nimmst du am anfang und am ende die zeit, rechnest aus wieviel verbraucht wurde und
aktivierst den timer wieder mit der differenz zwischen verbrauchter Zeit und 100ms.

Nicolai1234 9. Jun 2004 16:54

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Gibt es denn eine möglichkeit die dauer einer procedure so genau zu bestimmen?

woki 9. Jun 2004 17:05

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Schau mal in der OH unter gettickcount.

Grüsse
Woki

eroe 9. Jun 2004 17:52

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Hmm .. soweit ich dich verstanden habe, wäre eine - sicherlich NICHT elegante aber durchaus wirksame - Lösung die folgende :

Delphi-Quellcode:

for i:=0 to 100 do
  begin
  //Anweisungsblock
  sleep(100);
  end;

Nicolai1234 9. Jun 2004 17:53

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Aber wenn die procedure 50ms braucht und dein sleep, kommte man auf 150ms und das wäre verschwenderisch!

nailor 9. Jun 2004 17:55

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
mach es so wie smokey vorgeschlagen hat

Nicolai1234 9. Jun 2004 17:58

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Hat sich eh erledigt, nachdem was Sakura geschrieben hat:

Zitat:

Zitat von sakura
Die Prozedur wird erst wieder aufgerufen, wenn diese abgearbeitet wurde.

Eine Ausnahme könnte sein, wenn Du inerhalb dieser Application.Processmessages aufrufst.

...:cat:...


eroe 9. Jun 2004 17:58

Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
 
Zitat:

Zitat von Nicolai1605
Aber wenn die procedure 50ms braucht und dein sleep, kommte man auf 150ms und das wäre verschwenderisch!

Das stimmt wohl, hatte ich überlesen .. Ich dachte, er soll nach dem Anweisungsblock noch 100 ms warten, aber das hat sich ja dann erledigt ;)


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