![]() |
AW: durchschnittszeit ermitteln
okay, ich habe jetzt meine probleme annähernd in den griff bekommen^^ die lösung verläuft im ansatz nicht ideal, aber in diesem fall ist es mir inzwischen egal!
mein problem jetzt, ich habe 10 zeiten in string-variablen gespeichert. so kann ich sie natürlich nicht verrechnen um meinen schnitt rauszubekommen.. die strings sind alle im format 'mm:ss:zz' ich hab im forum schon rausgefunden, dass es mit hilfe von StrToTime und FormatSettings die möglichkeit gibt, dass ich diese variablen in zeiten umwandle, was ich erstens nicht ganz hinbekomme, da mir nicht klar ist, wie das mit formatsettings genau geht und zweitens ist dann die frage, ob ich damit überhaupt einen durchschnitt ermitteln könnte? denke einfache frage -> wie wandel ich die 10strings in passende variablen um, und wie verrechne ich sie dann miteinander?! |
AW: durchschnittszeit ermitteln
Dein Ansatz sollte genau andersherum sein.
Verwende TTime variablen für die ganze Stoppuhrgeschichte, und nur für die Anzeige verwendest du Labels und die entsprechenden Umwandlungsfunktionen. Dann hast du auch keine Probleme. Gruss |
AW: durchschnittszeit ermitteln
Als Ergänzung zu Vorposter:
Vermeide einen String oder gar eine Komponente als Zwischenspeicher zu benutzen sondern speichere selber in einer Variable zwischen. MfG Fabian |
AW: durchschnittszeit ermitteln
Also wenn du nicht auf deine 10 Durchläufe pochst dann mach es doch einfach so:
Delphi-Quellcode:
mit folgender .dfm
type
TForm1 = class(TForm) btnStart: TButton; btnStop: TButton; lbl1: TLabel; lblZeit: TLabel; lbl2: TLabel; lbl3: TLabel; lblDurchschnitt: TLabel; Timer1: TTimer; procedure btnStartClick(Sender: TObject); procedure btnStopClick(Sender: TObject); procedure Timer1Timer(Sender: TObject); private fZeit, // Variable für die aktuelle Stopuhr fZeitCumulativ : extended; // Variable für die aufaddierten Stopzeiten iCount : integer; // Variable für Anzahl der Stopzeiten public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.btnStartClick(Sender: TObject); begin // Stopuhr startet bei 0 :) fZeit := 0; // Zeit anzeigen lblZeit.Caption := FormatDateTime('hh:nn:ss zzz', fZeit); // Timer/Stopuhr starten Timer1.Enabled := true; end; procedure TForm1.btnStopClick(Sender: TObject); begin // Timer/Stopuhr anhalten Timer1.Enabled := false; // Zeit zu den Stopzeiten addieren und Anzahl hochsetzen fZeitCumulativ := fZeitCumulativ + fZeit; inc(iCount); // Durchschnitt anzeigen lblDurchschnitt.Caption := FormatDateTime('hh:nn:ss zzz', fZeitCumulativ / iCount); lbl3.Caption := 'von ' + IntToStr(iCount); end; procedure TForm1.Timer1Timer(Sender: TObject); begin // nächsten Zeitpunkt berechnen // Timer1.Interval / 1000 gewärleistet immer die richtige Schrittweite egal was im Timer eigestellt ist fZeit := fZeit + Timer1.Interval / 1000 / 86400; // Zeit anzeigen lblZeit.Caption := FormatDateTime('hh:nn:ss zzz', fZeit); end;
Delphi-Quellcode:
object Form1: TForm1
Left = 0 Top = 0 Caption = 'Form1' ClientHeight = 125 ClientWidth = 231 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'Tahoma' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object lbl1: TLabel Left = 8 Top = 8 Width = 22 Height = 13 Caption = 'Zeit:' end object lblZeit: TLabel Left = 16 Top = 24 Width = 3 Height = 13 end object lbl2: TLabel Left = 112 Top = 8 Width = 64 Height = 13 Caption = 'Durchschnitt:' end object lblDurchschnitt: TLabel Left = 120 Top = 24 Width = 3 Height = 13 end object lbl3: TLabel Left = 182 Top = 8 Width = 21 Height = 13 Caption = 'von ' end object btnStart: TButton Left = 8 Top = 56 Width = 75 Height = 25 Caption = 'Start' TabOrder = 0 OnClick = btnStartClick end object btnStop: TButton Left = 8 Top = 87 Width = 75 Height = 25 Caption = 'Stop' TabOrder = 1 OnClick = btnStopClick end object Timer1: TTimer Enabled = False Interval = 10 OnTimer = Timer1Timer Left = 104 Top = 56 end end |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:50 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