AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein GetTickCount beeinflusst von PC Auslastung
Thema durchsuchen
Ansicht
Themen-Optionen

GetTickCount beeinflusst von PC Auslastung

Ein Thema von MisterIXI · begonnen am 4. Jun 2015 · letzter Beitrag vom 5. Jun 2015
Antwort Antwort
Popov
(Gast)

n/a Beiträge
 
#1

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 4. Jun 2015, 21:52
Es sollte klappen.
  Mit Zitat antworten Zitat
MisterIXI

Registriert seit: 4. Jun 2015
15 Beiträge
 
Delphi 7 Personal
 
#2

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 4. Jun 2015, 22:27
Auch wenn ich gerne sagen würde dass es geht, muss ich leider enttäuscht sagen, dass ich diese Version eines Timers zwar komplett verstehe, und auch keine Fehler bekomme , allerdings bleibt er immer auf 00:00:000 stehen.
Ich hasse es wenn es von der Logik gehen müsste, aber es einfach nicht geht

Ich gehe persönlich davon aus, dass bei mir "time" vielleicht nicht richtig abgegriffen wird?
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 4. Jun 2015, 22:55
Der Timer1 ist nicht dazu da um etwas zu zählen, schon gar nicht Ticks, sondern nur um den aktuellen Stand in Label1.Caption anzuzeigen:
Delphi-Quellcode:
uses
  DateUtils; //Die Unit DateUtils wird für die Funktion MilliSecondsBetween benötigt

var
  T1: TTime; //Globale TTime Variable um die Startzeit zu merken

procedure TForm1.FormCreate(Sender: TObject);
begin
  // Interval ist für die Zählung irrelevant.
  // Sagt nur aus wie oft die Anzeige aktualisiert wird.
  Timer1.Interval := 1;
  Timer1.Enabled := False; //Timer1 zuerst deaktivieren
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // Es wird nicht ab 0 gezählt.
  // Die 0 ist nur dazu da um festzustellen ob T1 bereits einen Wert hat
  T1 := 0;
  Timer1.Enabled := True; // Stoppur starten
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  TimeTemp: TTime;
begin
  if T1 = 0 then // Wenn T1 = 0, dann ist es der ersten Durchlauf
    T1 := Time; // In dem Fall die Startzeit merken

  // Nun die Differenz (Int64) zwischen Startzeit und aktuellen Zeit vergleichen.
  // Bei TDateTime sind ganze Werte Daten, Nachkommawerte Zeiten.
  // Deshalb TimeTemp durch 24 Stunden, 60 Minuten, 60 Sekunden und 1000 Millisekunden teilen
  // Ergebnis ist eigentlich Zeit ab 00:00:00 Uhr
  TimeTemp := MilliSecondsBetween(T1, Time) / 24 / 60 / 60 / 1000;
  // Was angezeigt wird ist eigentlich die Uhrzeit, man merkt aber keinen Unterschied
  Label1.Caption := FormatDateTime('hh:nn:ss:zzz', TimeTemp);
end;
  Mit Zitat antworten Zitat
MisterIXI

Registriert seit: 4. Jun 2015
15 Beiträge
 
Delphi 7 Personal
 
#4

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 4. Jun 2015, 23:08
Okay auf die Idee hätte ich mal vorher kommen können: in einem neu geöffnetem Projekt funktioniert der Code. Allerdings in dem ganzen Konstrukt nicht <.<
Danke die kommentierte Version hat mir das ganze nocheinmal klar gemacht.
Ich versuche jetzt mal die Stelle zu finden an der es hakt indem ich systematisch auskommentiere.
  Mit Zitat antworten Zitat
MisterIXI

Registriert seit: 4. Jun 2015
15 Beiträge
 
Delphi 7 Personal
 
#5

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 4. Jun 2015, 23:41
Ok Ich habe meinen Fehler gefunden...
Ich hatte eine Variable vorher "Time" genannt, die immer durch den Zähler verändert wurde - logischerweise blieb es die ganze Zeit über auf Null.
Jetzt, da ich die Variable umbenannt habe, läuft der Timer ganz normal hoch.

Ich habe mein ganzes Programm inzwischen auch schon umgeschrieben, dass es mit den Werten auch rechnet und alles funktioniert

Vielen, vielen Dank für die Hilfe!! Das ist echt riesig!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 5. Jun 2015, 01:07
WM_TIMER Nachrichten haben im System eine sehr geringe Priorität. Deswegen wird alles was auf einem Timer basiert ungenau werden.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Lyan

Registriert seit: 5. Aug 2011
188 Beiträge
 
#7

AW: GetTickCount beeinflusst von PC Auslastung

  Alt 5. Jun 2015, 05:16
Hallo,

ich rate dir QPC https://msdn.microsoft.com/de-de/lib...=vs.85%29.aspx zu benutzen.


LG
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 19:02 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