AGB  ·  Datenschutz  ·  Impressum  







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

Touchscreen, Cursorabfrage

Ein Thema von MechMac666 · begonnen am 21. Mär 2023 · letzter Beitrag vom 22. Mär 2023
Antwort Antwort
peer81

Registriert seit: 19. Mär 2008
13 Beiträge
 
#1

AW: Touchscreen, Cursorabfrage

  Alt 22. Mär 2023, 10:14
Mit GetTickCount64 und UInt64 gibt es keinen Überlauf und der Rechner kann über 50 Tage an bleiben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Touchscreen, Cursorabfrage

  Alt 22. Mär 2023, 13:09
Zitat:
GetTickCount64
Das ist hier vollkommen egal, da LastUiserInput so oder so nur 32 Bit liefert
und somit auch GetTickCount ausreicht.

Ja, wenn es länger als 49 Tage keinen Input gab, dann gibt es hiermit ein Problemchen.


Einfach den letzten Wert merken und so lange alles ignorieren, wie er sich nicht ändert.
Es ist sehr unwahrscheinlich, dass jemand zusällig, nach genau 49,71 Tagen oder 99,42 oder 149,13 oder ...., in genau der selben Millisekunde des Überlaufs eine Eingabe macht. (und falls doch, dann muß er eben die Maus einfach nochmal kurz bewegen)
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (22. Mär 2023 um 13:16 Uhr)
  Mit Zitat antworten Zitat
peer81

Registriert seit: 19. Mär 2008
13 Beiträge
 
#3

AW: Touchscreen, Cursorabfrage

  Alt 22. Mär 2023, 15:43
LastUserInput ist nicht das Problem. Da wird es auch keine 50 Tage ohne Eingabe geben.

Code:
currentTickCount := GetTickCount()
Das bringt den Überlauf, wenn der Rechner mehr als 50 Tage ohne Neustart läuft. Und der Überlauf ist dann bei jedem Aufruf, auch wenn die letzte Eingabe 3 min her ist.

Also sollte man schon auf GetTickCount64 und UInt64 umstellen. Dann muss er auch nicht alle 50 Tage neu gestartet werden.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Touchscreen, Cursorabfrage

  Alt 22. Mär 2023, 16:53
Der Überlauf ist vollkommen egal.

Hier kommt es einfach nur auf die Differenz der beiden Werte an.
Und die Differenz kann auch nur positiv sein, da ein Ereignis ja nie in der Zukunft liegt.

Delphi-Quellcode:
{$OVERFLOWCHECKS OFF}  // Mindestens in Delphis seit 11.2 muß die nun standardmäßig aktive Überlaufprüfung deaktiviert werden
EinCardinalBzwLongWord := GetTickCount - lastInput.dwTime;
Ein Therapeut entspricht 1024 Gigapeut.
  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 13:01 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