AGB  ·  Datenschutz  ·  Impressum  







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

ShiftState bei MouseMove

Ein Thema von Alter Mann · begonnen am 4. Dez 2004 · letzter Beitrag vom 4. Dez 2004
Antwort Antwort
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

ShiftState bei MouseMove

  Alt 4. Dez 2004, 09:30
Hallo,

wie kann ich erkennen welche Maustaste bereits gedrückt ist, wenn die Maus über eine Componente gezogen wird?
Die Auswertung des ShiftState in MouseMove bringt nichts, da ShiftState durch MouseDown gesetzt wird.
Die Maustaste wurde ausserhalb gedrückt und anschließen über die Componente bewegt, daher ist ShiftState in
MouseMove = 0.
Wie kann also erkennen welche Maustaste gedrückt ist?
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#2

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 09:35
Zitat von Alter Mann:
Die Auswertung des ShiftState in MouseMove bringt nichts, da ShiftState durch MouseDown gesetzt wird.
Wei denn das?

Zitat:
Die Maustaste wurde ausserhalb gedrückt und anschließen über die Componente bewegt, daher ist ShiftState in MouseMove = 0.
Hast du die Maustaste aus der Maus herausgebrochen?

Zitat:
Wie kann also erkennen welche Maustaste gedrückt ist?
Also normalerweise reicht mir da ein "if ssLeft in ShiftState", aber wenn das angeblich nicht funktioniert, was ich mir jetzt gar nicht vorgstellen kann, dann könntest du in MouseDown eine Variable auf die Maustaste setze und bei MouseUp den Inhalt der Variable löschen.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 09:35
Zitat von Alter Mann:
...Wie kann also erkennen welche Maustaste gedrückt ist?
Hai,
Du könntest Dir in einer Variablen merken wie der Status der Maustasten ist und diese dann im MouseMove auswerten.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 10:05
Ich habe mich wahrscheinlich undeutlich ausgedrückt. Es soll so funktionieren wie im Explorer, dort können Datei ausgewählt werden, in dem die linke Maustaste gedrückt wird und anschließend die Dateien mittels 'MouseMove' auswählt werden.
Es geht also darum zuerkennen welche Maustaste oder Keyboard-Taste gedrückt ist bevor die Maus über die Componente gezogen wird. So etwas wie WM_GETMOUSEKEY und anschließend prüfen ob die Maus sich über der Componente befindet.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#5

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 10:08
Besser ist glaube GetKeyState(VK_LBUTTON)<0. Das kleiner 0 muss sein, da die Bits im Rückgabewert ganz merkwürdig gesetzt werden
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 10:13
Ok, GetKeyState hört sich gut an.

Benötige nur noch einen Tipp wie ich erkennen kann, ob die Maus über die Komponente gezogen wird.
MouseMove wird nähmlich nicht ausgelöst, sobald eine Taste (Maus oder Tastatur) gedrückt ist.
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 10:26
wegen der Maus-Capture feuert natürlich auch immer nur das MouseMove-Event von demjenigen Control, auf welchem du auch MouseDown ausgeführt hast. Du müsstest also immer dort kontrollieren, wo die Maus gerade ist ...was wohl schlecht möglich ist. Bleibt also dieses entweder per Timer zu machen oder per MouseHook, imo.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

Re: ShiftState bei MouseMove

  Alt 4. Dez 2004, 10:28
Ich danke Euch, werde es mit dem MausHook versuchen.

Schönes Wochenende.
  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 09:41 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