Thema: Delphi Cursor einfangen

Einzelnen Beitrag anzeigen

Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Cursor einfangen

  Alt 12. Mär 2021, 12:34
Das was Du Linieal nennst sind bei anderen lediglich Koordinaten.
Für Koordinaten hast Du oben bereits alles stehen was Du brauchst.


Angenommen Du hast ein Control mit einem Image von einem Teil eines Lineals.
Mit GetCursorPos() in einem Timer aktuelle Maus Koordinate holen.

Mit ClientToScreen/ScreenToClient diese Werte abgleichen um zu prüfen wie "nah" der Cursor am Teil des Lineals ist.

Ab einer von Dir gewünschten unter-Grenze mit SetCursorPos() den Cursor in das Control mit dem Teil des Lineals befördern.

Wenn Du ein Control fertig hast, so das der Timer alles brav verrichtet was er soll, füge nun mehr Controls mit mehr Teilabschnitten des Lineals hinzu und gebe dem Timer auch diese als Sprungziele an.

Du kannst auch ein großes Control mit dem kompletten Lineal machen und da dann eine eigene Maßeinheit für entwickeln,
Delphi macht meist alles mit


//edit
ich halte von dieser idee übrigens gar nichts. mich würde es als user verwirren wenn sich die maus nicht so verhält wie man es gewohnt ist.
okay, für default-Jumps bin ich zu haben (nach aktion X bekommt control Y den focus und die maus hüpft mit dahin) aber vom verschwinden des Cursors kann ich nur abraten.
Lass mal dann deine App abstürzen und der Kunde sitzt da... so ohne sichtbare maus... also ich würde so etwas nicht gut heissen.

ps:
die obige taktik gilt auch wenn du irgendwelche punkte im image als sprungziele bestimmst... also lineal mit cm und mm angabe, da nur du wissen kannst auf welchen pixel welcher wert ist kann ich dir nur bis hierhin hilfe geben.
Gruß vom KodeZwerg

Geändert von KodeZwerg (12. Mär 2021 um 13:03 Uhr) Grund: weil es freitag ist
  Mit Zitat antworten Zitat