AGB  ·  Datenschutz  ·  Impressum  







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

Maus "einsperren"

Ein Thema von Codewalker · begonnen am 2. Apr 2007 · letzter Beitrag vom 3. Apr 2007
Antwort Antwort
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#1

Maus "einsperren"

  Alt 2. Apr 2007, 20:46
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?
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Maus "einsperren"

  Alt 2. Apr 2007, 20:59
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.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Maus "einsperren"

  Alt 2. Apr 2007, 21:09
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#4

Re: Maus "einsperren"

  Alt 2. Apr 2007, 21:37
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: Maus "einsperren"

  Alt 2. Apr 2007, 23:00
Moin Thomas,

Du könntest mal schauen, ob es etwas vergleichbares wie ClipRect auch für MSDN-Library durchsuchenRegions gibt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Maus "einsperren"

  Alt 2. Apr 2007, 23:31
Hallo,

hier werden zwei Dinge vermischt. Zur Einschränkung der Mausbewegung stellt Windows (nach meinem Wissen) nur eine Funktion zur Verfügung: MSDN-Library durchsuchenClipCursor gestattet die Angabe eines Begrenzungsrechtecks. Über das Delphi-Referenz durchsuchenClipRect werden Zeichenoperationen auf ein Rechteck beschränkt. Hier wären Regionen tatsächlich ein geeignetes Mittel zur Definition beliebig geformter Bereiche.

Gruß Hawkeye
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Maus "einsperren"

  Alt 3. Apr 2007, 10:14
Also erstmal Danke für die vielen Antworten. Ich hab mich jetzt mal duch die MSDN gewühlt (finden kann man da nicht ). 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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

Re: Maus "einsperren"

  Alt 3. Apr 2007, 14:17
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.
$2B or not $2B
  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:26 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