![]() |
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! |
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:... |
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. |
Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
Gibt es denn eine möglichkeit die dauer einer procedure so genau zu bestimmen?
|
Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
Schau mal in der OH unter gettickcount.
Grüsse Woki |
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; |
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!
|
Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
mach es so wie smokey vorgeschlagen hat
|
Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
Hat sich eh erledigt, nachdem was Sakura geschrieben hat:
Zitat:
|
Re: Schleife erst wiederholen, wenn Vorgang abgeschlossen is
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 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 by Thomas Breitkreuz