AGB  ·  Datenschutz  ·  Impressum  







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

Mausklick Dauer herausfinden

Offene Frage von "der_kumpel"
Ein Thema von der_kumpel · begonnen am 22. Okt 2007 · letzter Beitrag vom 22. Okt 2007
Antwort Antwort
der_kumpel

Registriert seit: 30. Jun 2007
42 Beiträge
 
#1

Mausklick Dauer herausfinden

  Alt 22. Okt 2007, 13:06
Tag zusammen.

Ich stehe gerade vor einem Problem:
Es soll die Zeit, die für einen Mausklick (also die Zeit zwischen MouseDown und MouseUp) gebraucht wird, gemessen werden.
Der Mausklick passiert irgendwo auf dem Bidlschirm, also außerhalb des Delphi Programms.

Delphi-Quellcode:
procedure TForm1.Clock;
var
  Time: Cardinal;
begin
  Time:=GetTickCount;
  // hier müssten die beiden Events abgefangen werden
  ListBox1.Items.Add(IntToStr(GetTickCount - Time));
end;
Bei dem Code bin ich mir nicht sicher, ob das so geht. So würde ja die Zeit schon laufen, auch wenn die Maus noch nicht runtergedrückt wurde.

Wär nett, wenn jemand helfen kann.

Gruß,
kumpel
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Mausklick Dauer herausfinden

  Alt 22. Okt 2007, 13:16
Stopp die Zeit zwischen den Events MouseDown und MouseUp (allerdings geht es Desktopweit nur, wenn du dein fentser auf den Desktop ausdehnst oder einen globalen Hook einsetzt.

Delphi-Quellcode:
procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if zeit=0 then zeit:=gettickcount;
end;

procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  edit1.text:=inttostr(gettickcount-zeit);
  zeit:=0;
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
der_kumpel

Registriert seit: 30. Jun 2007
42 Beiträge
 
#3

Re: Mausklick Dauer herausfinden

  Alt 22. Okt 2007, 13:23
Danke für die schnelle Antwort.

Zitat von sirius:
Stopp die Zeit zwischen den Events MouseDown und MouseUp (allerdings geht es Desktopweit nur, wenn du dein fentser auf den Desktop ausdehnst oder einen globalen Hook einsetzt.

Das geht so leider nicht, weil zum Zeitpunkt des Klicks ein anderes Fenster im Vordergrund ist, also der Klick findet außerhalt meines Delphi PRogramms statt.

Dass ich dazu Hooks einsetzen muss, hatte ich schon befürchtet. Aber hilft nichts, ich werde mich mal einlesen.
Danke trotzdem.
  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 18:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz