![]() |
Maus "einsperren"
Hallo zusammen.
Delphi bietet über ClipRect eine Möglichkeit, die Maus in einem Viereck einzusperren. Das Problem: Ich brauche es aber für ein Sechseck. Gibt es da auch eine Möglichkeit? |
Re: Maus "einsperren"
Dass es ne einfache Möglichkeit gibt, glaub ich nicht. Aber du könntest im MouseMove prüfen, ob die Maus einen bestimmten Bereich verlassen hat und sie Mittels MousePos ggf. zurücksetzen.
|
Re: Maus "einsperren"
ClipRect ist eine Windowsfunktion (also nichts Delphieigenes). Und soweit ich weiß bietet das Betriebssystem keine Funktion für Sechseckiges "einsperren". Zudem kann man die Sperre mit "Strg + Alt + Entf" aufheben.
|
Re: Maus "einsperren"
hmm ich denke, keiner von uns hätte gerne, dass wir die MAus selbst dann einsperren, wenn Strg+Alt+Entf gedrückt wurde
zurücksetzen ergibt immer so nen blöden ruckel ich würde eher dass Rechteck jenachdem wo die Maus gerade ist verändern |
Re: Maus "einsperren"
Moin Thomas,
Du könntest mal schauen, ob es etwas vergleichbares wie ClipRect auch für ![]() |
Re: Maus "einsperren"
Hallo,
hier werden zwei Dinge vermischt. Zur Einschränkung der Mausbewegung stellt Windows (nach meinem Wissen) nur eine Funktion zur Verfügung: ![]() ![]() Gruß Hawkeye |
Re: Maus "einsperren"
Also erstmal Danke für die vielen Antworten. Ich hab mich jetzt mal duch die MSDN gewühlt (finden kann man da nicht :mrgreen: ). Leider haben alle Funktionen, die ich dafür gefunden habe als Parameter ein RECT.
@Hawkeye219: Ich hab leider dort nichts über Regions gefunden und das sagt mir auch nur im Zusammenhang mit runden Fenstern etwas. Ich werds also jetzt doch über das MouseMove-Event machen (nicht schön und bei Sechsecken auch recht aufwendig). Falls doch noch einer eine Lösung mit Regions oder ähnlichem findet, würd ich mich freuen :wink: |
Re: Maus "einsperren"
Christian meintewohl auch nich direkt Regions, sondern das du mal schauen könntest, ob es nicht sowas in der Art (wo man halt auch andere Formen übergeben kann) auch für ClipCursor gibt.
Aber mir is bislang och nichts derartiges untergekommen. Man könnte da jetzt wohl höchstens (da MSDN/PSDK nichts ausspuckt) mal sehn ob/was ClipCursor intern aufruft/nutzt und dann nach anderen Funktionen suchen welche ebenfalls derartige Dinge aufruft/nutzt. Aber ich denke einfach mal, daß in Windows dann nur die Grenzwerte Werte für X und Y festgelegt/verglichen werden und demnach wären halt nur Rechtecke möglich. Ansonsten: wie sieht es mit MausHooks aus? werden die vorm "sichtbaren" Verschieben des Mauszeigers aufgerufen, so das man da eventuell vor dem "sichtbaren" Verschieben die Werte bei Überschreitung der gewünschten Grenzen zurücksetzt. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 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