Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
Global ResX = 800
Global ResY = 600
MainWindow = OpenWindow(#PB_Any, 0, 0, ResX, ResY, "Title",#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(MainWindow),0,0,ResX,ResY,0,0,0)
Global Dim LastMouseButtonStatus(3)
Global Dim TmpMouseButtonStatus(3)
Global Dim MouseButtonTimer(3)
Global Dim MouseClick(3)
Global Dim MouseDoubleClick(3)
Procedure UpdateMouseClick()
For i = 1 To 3
MouseClick(i) = 0
MouseDoubleClick(i) = 0
Select i
Case 1
button = #PB_MouseButton_Left
Case 2
button = #PB_MouseButton_Right
Case 3
button = #PB_MouseButton_Middle
EndSelect
TmpMouseButtonStatus(i) = MouseButton(button)
If TmpMouseButtonStatus(i) <> LastMouseButtonStatus(i)
LastMouseButtonStatus(i) = TmpMouseButtonStatus(i) ; Aktueller Status der Maustaste
If TmpMouseButtonStatus(i) = 0 ; Maus wurde gedrückt und wieder losgelassen
If ElapsedMilliseconds() - MouseButtonTimer(i) < 400
MouseDoubleClick(i) = 1
EndIf
MouseButtonTimer(i) = ElapsedMilliseconds()
MouseClick(i) = 1
EndIf
EndIf
Next
EndProcedure
; --- Beispiel ---
Repeat
ExamineKeyboard()
ExamineMouse()
UpdateMouseClick()
If MouseClick(#PB_MouseButton_Left) = 1 : Debug "Mausklick links" : EndIf
If MouseDoubleClick(#PB_MouseButton_Left) = 1 : Debug "Doppelklick links" : EndIf
If MouseClick(#PB_MouseButton_Right) = 1 : Debug "Mausklick rechts" : EndIf
If MouseDoubleClick(#PB_MouseButton_Right) = 1 : Debug "Doppelklick rechts" : EndIf
If MouseClick(#PB_MouseButton_Middle) = 1 : Debug "Mausklick mitte" : EndIf
If MouseDoubleClick(#PB_MouseButton_Middle) = 1 : Debug "Doppelklick mitte" : EndIf
Until WindowEvent() = #PB_Event_CloseWindow Or KeyboardPushed(#PB_Key_Escape)
End