AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zeit messen & Programm abrechen

Ein Thema von nothin · begonnen am 18. Okt 2003 · letzter Beitrag vom 18. Okt 2003
Antwort Antwort
Benutzerbild von nothin
nothin

Registriert seit: 18. Okt 2003
21 Beiträge
 
#1

Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 14:00
Sers Leute,

bin ein ziemlicher Anfänger und hab zwei Fragen an Euch:

1. Wie errechne ich die Zeit, die eine Prozedur für das Ausführen eines Codes braucht? Ich "programmiere" zur Zeit ein Programm, das mit Hilfe von Bubblesort, Zahlen sortiert. Ich möchte auf der Oberfläche meines Programms eine Art Stopuhr (die anzeigt wie Lange das Programm schon arbeitet) anzeigen. Wie stelle ich das an? Beispiele?
2. Ich möchte in mein Bubblesort einen Abbruchknopf einbauen. Wenn die Sortierung mit Bubblesort zu lange dauert, möchte ich, dass der Benutzer die Möglichkeit hat den Vorgang abzubrechen.
Hab's schon versucht, aber sol lange das Progamm rechnet kann man bei mir keine Buttons klicken
Wie stelle ich das an? Beispielcode?
n0th!n
--------------------------------------------------
Ziele sind wichtiger als Erinnerungen
--------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 14:14
In die Schleife Application.Processmessages rein.

Das mit der Zeit wird schwierig - für dich, wenn du es richtig machen willst. Einfach und ungenau wird es mit GetTickCount. Die Forensuche sollte helfen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von nothin
nothin

Registriert seit: 18. Okt 2003
21 Beiträge
 
#3

Re: Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 14:19
Ist es egal wo in der Schleife Application.Processmessages rein muss?
Was für Code muss bei so einem Abrruchbutton rein?
n0th!n
--------------------------------------------------
Ziele sind wichtiger als Erinnerungen
--------------------------------------------------
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 14:21
Nimm eine bool'sche Variable (global) die du in der Schleife abfragst und mit einem Button entsprechend setzt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 14:59
Delphi-Quellcode:
Var Beenden: Boolean;

Procedure ...;
Var Start: TDateTime;
{Z: Byte;}
Begin
  Beenden := False;
  Start := now;
  Repeat
    ...
    Label1.Caption := TimeToStr(Now - StartZeit);
    {Inc(Z);}  
    {If Z mod 32 = 0 Then} Application.ProcessMessages;
  Until Beenden or (fertig);
  Label1.Caption := 'fertig / abgebrochen';
End;

Procedure Form1.ButtonClick(Sender: TObject);
Begin
  Beenden := True;
End;

Achtung: je häufiger ProcessMessages aufgerufen wird, desto länger baucht dein Programm.
Notfalls einen Zähler einbauen und nur bei jedem X-ten Durchlauf aufrufen.
Im Beispiel bieten sich Potenzen von 2 für X(32) an.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 15:10
Kuck dir doch mal im Demos/Threads Verzeichnis von Delphi das Programm Thrddemo an. Erklärt einerseits genau die Lösung zu deinem Problem mittels Threads und zeigt andererseits auch noch genau passend die Threads eingesetzt bei einem Sortierverfahrenvergleich.

Gruß,
Tom
  Mit Zitat antworten Zitat
Benutzerbild von APP
APP

Registriert seit: 24. Feb 2003
Ort: Graz (A)
705 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Zeit messen & Programm abrechen

  Alt 18. Okt 2003, 15:26
Hallo,
zur genauen Zeitmessung habe ich eine Unit von
Peter J. Haas & Robert Rossmair auf meiner Platte
herumliegen, leider finde ich den Link nicht mehr.
(Lizenz der Unit ist MPL)
Angehängte Dateien
Dateityp: zip difftime.zip (4,6 KB, 94x aufgerufen)
Armin P. Pressler

BEGIN
...real programmers are using C/C++ - smart developers Delphi;
END;
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 08:56 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