AGB  ·  Datenschutz  ·  Impressum  







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

Get doubleclick width / height

Ein Thema von blablab · begonnen am 5. Nov 2016 · letzter Beitrag vom 5. Nov 2016
Antwort Antwort
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#1

Get doubleclick width / height

  Alt 5. Nov 2016, 14:40
Hi!

Gibt es um die maximale Distanz zwischen zwei Klicks festzustellen eine Art Methode wie GetDoubleClickSpeed?

Im Prinzip möchte ich also diese Werte möglichst bequem auslesen:
HKEY_CURRENT_USER\Control Panel\Mouse\DoubleClickWidth
HKEY_CURRENT_USER\Control Panel\Mouse\DoubleClickHeight

Grüße
blablab
  Mit Zitat antworten Zitat
Delphi-Laie

Registriert seit: 25. Nov 2005
1.474 Beiträge
 
Delphi 10.1 Berlin Starter
 
#2

AW: Get doubleclick width / height

  Alt 5. Nov 2016, 16:07
Diese beiden Werte lassen sich doch recht bequem aus der Registrierung auslesen. Die nötigen Unterprogramme dazu findest Du in der Unit "Registry".

Die maximale Distanz ist dann nicht oder gerade so erreicht, wenn DoubleClickWidth und DoubleClickHeight nicht oder gerade so erreicht sind. Oder negiert: Die maximale Distanz ist dann überschritten, wenn eine der beiden Distanzen überschritten wurde.

Wenn Du allerdings einen Kreis als maximale Distanz wünschst, mußt Du den Satz des Pythagoras' anwenden.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#3

AW: Get doubleclick width / height

  Alt 5. Nov 2016, 16:12
...
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
969 Beiträge
 
Delphi 6 Professional
 
#4

AW: Get doubleclick width / height

  Alt 5. Nov 2016, 18:13
Statt direkt aus der Registry gibs auch hier API-Calls unter Windows:

Delphi-Quellcode:
//Schreiben
  Windows.SetDoubleClickTime(SpinEditSpeed.Value);
  Windows.SystemParametersInfo(SPI_SETDOUBLECLKHEIGHT,SpinEditHeight.Value,NIL,(SPIF_UPDATEINIFILE or SPIF_SENDCHANGE));
  Windows.SystemParametersInfo(SPI_SETDOUBLECLKWIDTH,SpinEditWidth.Value,NIL,(SPIF_UPDATEINIFILE or SPIF_SENDCHANGE));

//Lesen
  SpinEditHeight.Value := Windows.GetSystemMetrics(SM_CYDOUBLECLK);
  SpinEditWidth.Value := Windows.GetSystemMetrics(SM_CXDOUBLECLK);
  SpinEditSpeed.Value := Windows.GetDoubleClickTime;
  Mit Zitat antworten Zitat
blablab

Registriert seit: 3. Jan 2006
509 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Get doubleclick width / height

  Alt 5. Nov 2016, 19:50
@HolgerX:
Vielen Dank! Genau das hab ich gesucht!

@Delphi-Laie:
Wäre das korrekt? (Die erste Funktion ist Dank HolgerX nicht mehr nötig)
Delphi-Quellcode:
function GetDoubleClickSize: TSize;
var
   reg: TRegistry;
begin
   reg := TRegistry.Create;
   Try
      reg.RootKey := HKEY_CURRENT_USER;
      reg.OpenKey('Control Panel\Mouse', False);
      Result.cx := StrToInt(reg.ReadString('DoubleClickWidth'));
      Result.cy := StrToInt(reg.ReadString('DoubleClickHeight'));
   Finally
      reg.Free;
   End;
end;

function InDist(const test, mid: TPoint; const eSize: TSize): Boolean;
var
   rFx, rFy: Double;
   dX, dY, maxSize: Integer;
begin
   dx := mid.X - test.X;
   dy := mid.Y - test.Y;
   maxSize := Max(eSize.cx, eSize.cy);
   rFx := Sqrt(Sqr(maxSize) - Sqr(eSize.cy)) / 2;
   rFy := Sqrt(Sqr(maxSize) - Sqr(eSize.cx)) / 2;
   Result := Sqrt(Sqr(dX-rFx) + Sqr(dY-rFy))
                  + Sqrt(Sqr(dX+rFx) + Sqr(dY+rFy)) <= maxSize;
end;
  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 10:30 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