Abfrage ob Maus oder Taste betätigt

Für allgemeine Fragen zur Programmierung mit PureBasic.
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Abfrage ob Maus oder Taste betätigt

Beitrag von Poser »

Repeat
ExamineKeyboard()

...

Until KeyboardPushed(#PB_Key_All)


Das gilt allerdings nur für die Tastatur. Kann man das Until
nicht einfach erweitern? Soll noch dazu: Abfrage ob Maus
bewegt oder geklickt wurde.
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Or
Bild
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

mausx.w = MouseX()

Repeat
ExamineKeyboard()
ExamineMouse()

Until KeyboardPushed(#PB_Key_All) Or mausx<>MouseX()

Funzt leider nicht...
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Code: Alles auswählen

ExamineMouse()
mausx.w = MouseX()

Repeat
ExamineKeyboard()
ExamineMouse()

Until KeyboardPushed(#PB_Key_All) Or mausx<>MouseX() 
Bild
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

Kann man #WM_MOUSEMOVE auch irgendwie benutzen wenn aber mit Openscreen gearbeitet wird?
Benutzeravatar
MVXA
Beiträge: 3823
Registriert: 11.09.2004 00:45
Wohnort: Bremen, Deutschland
Kontaktdaten:

Beitrag von MVXA »

Wahrscheinlich nicht.
Bild
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

Also muss ich X + Y wie oben abfragen und zusätzlich die Maustasten auch noch oder? Umständlich aber machbar...
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

am einfachsten wäre vielleicht:

in der schleife:

Code: Alles auswählen

MouseMove = MouseDeltaX() Or MouseDeltaY() Or MouseButton(1) Or MouseButton(2)
und die schleifenbedingung:

Code: Alles auswählen

Until KeyboardPushed(#PB_Key_All) Or MouseMove
... du kannst natürlich auch die 4 functions ins until packen und auf die Var verzichten :wink:

---------------------------------------

ne MouseMove wär vllt. ein netter neuer befehl für die V4.0
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Poser
Beiträge: 33
Registriert: 09.03.2005 21:02

Beitrag von Poser »

Geht leider nicht... führt zum sofortigen Ende der Repeat-Schleife .-(
Benutzeravatar
Laurin
Beiträge: 1639
Registriert: 23.09.2004 18:04
Wohnort: /dev/eth0

Beitrag von Laurin »

Das liegt an MouseDeltaX() und MouseDeltaY().

Ich nehme an, du hast eine optische Maus oder? Die Dinger sind meist so empfindlich, dass selbst dein Puls damit gemessen werden kann.
Zu Deutsch: MouseDeltaX() und MouseDeltaY() sind nie 0 und damit ist die Abbruchbedingung der Schleife erfüllt.
(Das wäre jedenfalls eine logische Erklärung für das Ganze.)

Benutze lieber MouseX() usw. Damit sollte es gehen.


Greetz Laurin
Now these points of data make a beautiful line.
And we're out of beta. We're releasing on time.
Antworten