![]() |
Zeit messen
Hallo,
wie kann ich mit einer ganz einfachen Prozedur messen, wie lange ein Button gedrückt worden ist? Kann mir jemand dazu ne kurze Anleitung mit Quelltext nennen? LG :-D |
Re: Zeit messen
hi
im MouseDown vom button in einer globalen variable die zeit speichern und dann im MouseUp die differenz bilden, dann hast du die millisekunden
Delphi-Quellcode:
var zeit:integer;
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin zeit:=GetTickCount; end; procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin showmessage(inttostr(GetTickCount-zeit)); end; |
Re: Zeit messen
In OnMouseDown den Wert von GetTickCount in einer Cardinalvariable merken, Tag des Buttons ginge auch, dann in OnMouseUp die Differenz ausrechnen.
Alternativ (genauer) ginge es mit QueryPerformanceCounter. // EDIT: Statt
Delphi-Quellcode:
lieber
var zeit:integer;
Delphi-Quellcode:
Und noch besser gar nicht als globale Variable sondern z.B. als Feld im Formular. ;-)
var
zeit: Cardinal; |
Re: Zeit messen
Das ist nicht allzuschwer also gibts au kein Codebeispiel :-D
Ich würd dir GetTickCout empfehlen. Im MouseDowm speicherste den aktuellen TickCount in eine Variable. Im MouseUp erneuet. Dann errechnest du die Differenz. mfg Whatever |
Re: Zeit messen
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal vor einiger Zeit folgendes in einem Forum gefunden, nicht allzu gut aber für jemanden der nur Timer und wenige Datentypen kennt das richtige
(Ist halt nur nicht auf die Millisekunde genau ..) |
Re: Zeit messen
Zitat:
|
Re: Zeit messen
GetTickCount löst aber nur etwa 10ms-genau auf, ist die procedure schneller benötigt man QueryPerformanceCounter...da hab ich das mal implementiert:
![]() TTimer wird imho auch angehalten, wenn z.b. das Formular verschoben wird... Gruß Frank |
Re: Zeit messen
Ja einmal stoppt er kurz und desweiteren hab ich mal irgendwo gelesen das der Timer nur auf ca. 40ms genau ist...
|
Re: Zeit messen
Danke für die schnellen Antworten.
Eine Frage habe ich noch: Warum streicht es mir den Befehl Button1MouseDown immer rot an? Ich habe doch einen Button1 |
Re: Zeit messen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:38 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 by Thomas Breitkreuz