Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Maus verlangsamen (https://www.delphipraxis.net/117523-maus-verlangsamen.html)

Die Muhkuh 19. Jul 2008 18:30


Maus verlangsamen
 
Hi,

ich hab ein Vergrößerungsglas, das ein Ausschnitt aus einem Images vergrößert. Dieses Glas folgt der Maus. Jetzt würde ich gerne, dass die Maus bei gedrückter Shifttaste sich langsamer bewegt, so dass man die Maus besser positionieren kann (z.B. um genau einen Rand abzufassen).

Wie würdet ihr sowas angehen?

Der.Kaktus 19. Jul 2008 18:44

Re: Maus verlangsamen
 
Zitat:

Zitat von Die Muhkuh
Hi,

ich hab ein Vergrößerungsglas, das ein Ausschnitt aus einem Images vergrößert. Dieses Glas folgt der Maus. Jetzt würde ich gerne, dass die Maus bei gedrückter Shifttaste sich langsamer bewegt, so dass man die Maus besser positionieren kann (z.B. um genau einen Rand abzufassen).

Wie würdet ihr sowas angehen?

Hallo Muh ,

ich wuerde es ueber die "Windows System Steuerung Mausgeschwindigkeit" also API versuchen. Da merkst Du Dir den Originalwert..und verzoegerst einfach bei Wunsch. Die Funktion findest sicher in der Hilfe. :hi:

Die Muhkuh 19. Jul 2008 18:46

Re: Maus verlangsamen
 
Hi,

das wird z.B. bei mir nicht funktionieren, da ich schon den kleinsten Wert eingestellt habe (dafür die DPI-Zahl der Maus recht hoch). Es sollte unabhängig davon sein.

Der.Kaktus 19. Jul 2008 18:56

Re: Maus verlangsamen
 
Zitat:

Zitat von Die Muhkuh
Hi,

das wird z.B. bei mir nicht funktionieren, da ich schon den kleinsten Wert eingestellt habe (dafür die DPI-Zahl der Maus recht hoch). Es sollte unabhängig davon sein.

Hmmm :freak: ..dann musste die Routine selbst in die Hand nehmen und bissl "Sleep" einbauen?

Die Muhkuh 19. Jul 2008 19:05

Re: Maus verlangsamen
 
Hi,

der Gedanke wuselt mir ja auch im Kopf rum, aber vielleicht hat ja jemand noch eine bessere Idee.

Der.Kaktus 19. Jul 2008 19:06

Re: Maus verlangsamen
 
Zitat:

Zitat von Die Muhkuh
Hi,

der Gedanke wuselt mir ja auch im Kopf rum, aber vielleicht hat ja jemand noch eine bessere Idee.

hab gerade mal bissl gegoogelt...nix zu finden..wird Dir nichts anderes uebrigbleiben ;-)

Morphie 19. Jul 2008 19:17

Re: Maus verlangsamen
 
Zitat:

Zitat von Die Muhkuh
Hi,

das wird z.B. bei mir nicht funktionieren, da ich schon den kleinsten Wert eingestellt habe (dafür die DPI-Zahl der Maus recht hoch). Es sollte unabhängig davon sein.

Hab da ehrlichgesagt nicht viel Ahnung von, aber wär es net möglich eine einheitliche Größe aus DPI-Zahl und Mausgeschwindigkeit zu basteln?

DPI / ms oder so?

Diese dann wie gesagt auf einen Standardwert (DPI = wenig, geschwindigkeit = wenig) zu setzen und anschließend wieder auf den Ursprungswert zu setzen?



Nur so ne Idee...

Larsi 19. Jul 2008 19:25

Re: Maus verlangsamen
 
In den Registry steht die Mausgeschindigkeit auch drinnen, die kann man auch ändern.

Die Muhkuh 19. Jul 2008 19:27

Re: Maus verlangsamen
 
Larsi:

Zitat:

Zitat von Die Muhkuh
Hi,

das wird z.B. bei mir nicht funktionieren, da ich schon den kleinsten Wert eingestellt habe (dafür die DPI-Zahl der Maus recht hoch). Es sollte unabhängig davon sein.

Morphie:

So genau muss es nicht mal sein, einfach nur langsamer. Aber ich bin gerade am Rumprobieren.

mr_emre_d 19. Jul 2008 19:41

Re: Maus verlangsamen
 
dimmen !??!

Die Muhkuh 19. Jul 2008 19:42

Re: Maus verlangsamen
 
Was willst Du mir damit sagen?

rollstuhlfahrer 19. Jul 2008 20:39

Re: Maus verlangsamen
 
HI,

ich würd mir den aktuellen Punkt merken und bei einer Mausbewegung den Punkt nur um den halben Abstand ändern.
Du kannst aber auch die Maus ausblenden, musst sie dafür selbst zeichnen. Dadurch kannst du die Bewegungen entsprechend verlangsamen. Dieses Prinzip wird (ohne Verlangsamung) höchtwahrscheinlich auch in Ego-Shootern verwendet, da man sich hier beliebig z.B. nach rechts drehen kann, ohne an einen Bildschirmrand zu stoßen. Nach dem loslassen der Shift-Taste kannst du entweder den Cursor an seiner aktuellen Position wieder auftauchen lassen oder erst verschieben und dann wieder auftauchen lassen.

Bernhard

Medium 20. Jul 2008 03:45

Re: Maus verlangsamen
 
Genau das wollte ich auch grad vorschlagen. In solchen Fällen blende ich meist die Maus aus, und berechne mir "OnMouseMove" die Verschiebung zum vorigen Punkt, und das eigentliche Objekt wird dann nur um ein Bruchteil des Verschiebungsvektors bewegt. Dabei macht es auf jeden Fall Sinn, die Position das zu verschiebenden Teils mit Floats zu speichern und berechnen, und nur zu Anzeigezwecken zu runden.
Da man auch mit ausgeblendetem Cursor noch an den Bildrand stoßen kann (halt nur unsichtbarerweise dann), behelfe ich mir da meist mit einem Timer, der die unsichtbare Maus auf die Bildschirmmitte zurück zieht. 200ms schien dafür ein brauchbarer Wert zu sein, so dass man sich schon sehr anstrengen muss um in der Zeit nen halben Bildschirm zu "überqueren". Und keine Angst: Alle 200ms den Cursor versetzen ist wirklich nichts, was eine CPU groß juckt.

Eleganter wäre es natürlich, wenn man die Maus generell dazu bringen könnte bei Bewegung nur einen Richtungsverktor zu liefern, statt einer Position. Dann fiele das Rücksetzen sowie das eigene Berechnen weg. Jedoch kenne ich bislang keine Möglichkeit dies zu machen. Ich kann mir vorstellen, dass das u.U. mit DirectInput was gibt, aber ich habe auch in Richtung WinAPI noch nicht recherchiert.

rotfc 20. Jul 2008 04:06

Re: Maus verlangsamen
 
Hilft vermutlich nicht, aber vielleicht ein vager Ansatzpunkt zum Weitersuchen:

http://linuxreviews.org/howtos/xfree/mouse_speed_in_x/


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 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