![]() |
Berrechnungsrestdauer anzeigen lassen.
Hallo,
ich hab mal eine Frage. Und zwar. Wie mach ich es am besten wenn ich in meinem Programm per Klick auf einen Button eine Berrechnung starte und während diese läuft möchte ich die ungefähre Zeit bis zum Ende dieser Berrechnung anzeigen. Code etwa so:
Delphi-Quellcode:
Aber irgendwie haut das nicht hin! Irgendwas mach ich da wohl noch Falsch.
var
i, ai: Integer; start, ms: Integer; Dauer, Restdauer: Integer: begin; for i := 0 to ai do begin; start := GetTickCount; begin; //Berechne usw. mach halt was! //bla bla bla viele Sachen machen usw.! end; ms := GetTickCount - start; Dauer := ms * ai; Restdauer := ms * (ai - i); Panel1.Caption := IntToStr(Dauer); Panel2.Caption := IntToStr(Restadauer); end; end; Vielleicht hat irgendjemand schon mal sowas gemacht und kann mir da ein bisserl unter die Arme greifen. Danke, Arma. |
Re: Berrechnungsrestdauer anzeigen lassen.
Hallo,
versuche es einmal damit:
Delphi-Quellcode:
...
for i := 0 to ai do begin start := GetTickCount; begin //Berechne usw. mach halt was! //bla bla bla viele Sachen machen usw.! end; Panel1.Caption:=IntToStr((GetTickCount-start) div 1000)+' Sekunden'; end; |
Re: Berrechnungsrestdauer anzeigen lassen.
Danke für die Antwort, aber ist das nicht in etwa vom Prinzip her das gleiche was ich hatte. :roll:
Die Schleifendurchläufe gehen halt so schnell das ich nur ein Flackern habe. Irgendwie müßte man das doch Komposti... äh Kompensieren können oder? |
Re: Berrechnungsrestdauer anzeigen lassen.
Hallo,
Du hast recht. Ich sollte die Beiträge genauer lesen. Die ungefähre Restdauer wirst Du so ohne weiteres nicht anzeigen können. Das hängt zum einen von der benutzten CPU und zum anderen von den eingesetzten Formeln ab. Wenn die ganze Aktion nicht länger als ein paar Sekunden dauert, genügt es doch vollkommen, die Sanduhr anzuzeigen. |
Re: Berrechnungsrestdauer anzeigen lassen.
Schon klar aber die Aktion dauert auf meiner Kiste max. ca.: 30sec.
Aber irgendwie muß das doch gehen. Ich habe ja die maximale Anzahl von Durchläufen und dann messe ich ja die Zeit von einem Durchgang. und wenn ai = 1000000 ist und ein Durchlauf = 1ms Dauert dann dauert Alles ja normalerweise 1000000ms Avber irgendwie klappts nicht so wie es soll. Bei einem Audiobearbeitunsprogramm wird das beim Normaliesieren bei mir auch in min. sec. und ms. angezeigt wie lange es noch ungefähr geht und das läuft ja sicher auch in schleifen ab auf jedenfall mal so ähnlich wie bei mir denk ich nur halt etwas komplexer. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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