AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

durchschnittszeit ermitteln

Ein Thema von arest · begonnen am 11. Jun 2010 · letzter Beitrag vom 14. Jun 2010
 
arest

Registriert seit: 27. Sep 2005
Ort: Frankfurt
62 Beiträge
 
Delphi 6 Personal
 
#8

AW: durchschnittszeit ermitteln

  Alt 13. Jun 2010, 14:49
Delphi-Quellcode:
procedure TForm1.ResetClock;
begin
  if Label1.Caption <> '00:00:00'
  then begin
          ClockStarted := False;
          TimeStopped := getTickcount-TimeStarted + TimeStopped;
          TimeStopped := 0;
          Label1.Caption := TicksToTime(0); // = '00:00:00'
          if RadioButton1.Checked=true
          then begin
                 inc(n);
                 if n>10
                 then begin
                         antwort:=form3.ShowModal;
                         if antwort=mrok
                         then begin
                                 n:=1;
                              end
                         else begin
                                 //asdf
                              end;
                      end
               end

       end

end;

procedure TForm1.StartClock;
begin
  ClockStarted := True;
  TimeStarted := GetTickCount;
  repeat
    TimeElapsed := GetTickCount-TimeStarted;
    Label1.Caption := TicksToTime(TimeStopped+TimeElapsed);
    application.ProcessMessages; // damit sich das Programm nicht "aufhängt"
    if application.Terminated then // Falls die Anwendung inzwischen beendet wurde
      exit;
    sleep(1); // 100% CPU-Auslastung vermeiden
  until not ClockStarted;
end;

so ich habe dann mal ein wenig dran rumgebastelt.. es läuft soweit erstmal, dass er schritt für schritt die einzelnen captions füllt, aber wenn ich es als variablen haben möchte, gibts immer probleme

im code zu sehen, dass ich immer erst beim reset der uhr den zähler n erhöhe, damit die zeit, wenn ich nur pausiere und dann weiter laufen lasse weiterhin im gleichen label landet und nicht als nächste zeit für den zu ermittelnden durchschnitt ist... die abfrage prüft dann, ob die bereits zehn gefüllten zeiten überschrieben werden sollen, eigentlich unwichtig für mein problem!
beim startclock hab ich auch keinerlei probleme.. es hängt immer beim stopclock! da taucht immer ein runtime error auf :/ ich hatte es vorher mal probiert einfach nur in labels zu füllen, damit ich zumindest erst mal alle zeiten habe.. später wollte ich die dann in variablen umwandeln (im ansatz eigentlich falsch, ist mir klar....) zum test hats erst mal geklappt... das sah dann so aus:

Delphi-Quellcode:
if n=1
then Label14.Caption:=Label1.Caption;
if n=2
then Label15.Caption:=Label1.Caption;
und so weiter.. abgeändert habe ich es dann in folgendes:

Delphi-Quellcode:
procedure TForm1.StoppClock;
begin
  ClockStarted := False;
  TimeStopped := getTickcount-TimeStarted + TimeStopped;
  Label1.Caption:= TicksToTime(TimeStopped);
  if RadioButton1.Checked=true
  then begin
          if n=1
          then zeit1:=StrToTime(Label1.Caption);
               Label14.Caption:=TimeToStr(zeit1);
          if n=2
          then zeit2:=StrToTime(Label1.Caption);
               Label15.Caption:=TimeToStr(zeit2);
          if n=3
          then zeit3:=StrToTime(Label1.Caption);
               Label16.Caption:=TimeToStr(zeit3);
          if n=4
          then zeit4:=StrToTime(Label1.Caption);
               Label17.Caption:=TimeToStr(zeit4);
          if n=5
          then zeit5:=StrToTime(Label1.Caption);
               Label18.Caption:=TimeToStr(zeit5);
          if n=6
          then zeit6:=StrToTime(Label1.Caption);
               Label19.Caption:=TimeToStr(zeit6);
          if n=7
          then zeit7:=StrToTime(Label1.Caption);
               Label20.Caption:=TimeToStr(zeit7);
          if n=8
          then zeit8:=StrToTime(Label1.Caption);
               Label21.Caption:=TimeToStr(zeit8);
          if n=9
          then zeit9:=StrToTime(Label1.Caption);
               Label22.Caption:=TimeToStr(zeit9);
          if n=10
          then zeit10:=StrToTime(Label1.Caption);
               Label23.Caption:=TimeToStr(zeit10);


       // schnitt:=((zeit1 + zeit2+ zeit3 + zeit4 + zeit5 + zeit6 + zeit7 + zeit8 + zeit9 + zeit10) div n);
       // Label25.Caption:=TimeToStr(schnitt);
        end
end;
das problem ist, dass er mir dabei jedes mal direkt rausspringt... wo ist der fehler?
  Mit Zitat antworten Zitat
 


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 09:06 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