Seite 1 von 1

cmd+q bzw. Tastenkombinationen abfragen

Verfasst: 08.08.2013 17:26
von gekkonier
Wenn ich bei folgendem Progrämmchen die esc Taste auf dem Mac drücke, dann schliesst sich das Programm, wie erwartet.
Kann mir bitte jemand sagen, wie ich das machen kann, dass auf cmd+q reagiert wird um das selbe zu erreichen? Ich habe im deutschen Forum und der Hilfe leider nicht viel darüber gefunden.
Vielen Dank für eure Hilfe!

Code: Alles auswählen

InitSprite()
InitKeyboard()


OpenWindow(0,0,0,600,800,"Colored",#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),0,0,600,800)

Repeat
  
  Repeat
    event = WindowEvent()
    Select event
      Case #PB_Event_CloseWindow
        quit = 1
    EndSelect
  Until event = 0
  
  
  ExamineKeyboard()
  
  If KeyboardPushed(#PB_Key_Escape)
    quit = 1
  EndIf
  
  
  ClearScreen(RGB(0,255,0))
  FlipBuffers()
  
Until quit

Re: cmd+q bzw. Tastenkombinationen abfragen

Verfasst: 09.08.2013 10:20
von gekkonier
Ich bin etwas ratlos…


Test1:
Hier kann ich mit cmd+q das Programm beenden:

Code: Alles auswählen

OpenWindow(0,0,0,600,800,"test")
Debug "test"
Repeat
  Repeat
    event = WindowEvent()
    Select event
      Case #PB_Event_CloseWindow
        quit = 1
      Case #PB_Event_Menu
        Select EventMenu()
          Case -1
            quit = 1
        EndSelect
    EndSelect
  Until event = 0
Until quit
Test2:
Hier auch!

Code: Alles auswählen

InitSprite()

OpenWindow(0,0,0,600,800,"test")
OpenWindowedScreen(WindowID(0),0,0,600,800)

Repeat
  
  Repeat
    event = WindowEvent()
    Select event
      Case #PB_Event_CloseWindow
        quit = 1
      Case #PB_Event_Menu
        Select EventMenu()
          Case -1
            quit = 1
        EndSelect
    EndSelect
  Until event = 0

  ClearScreen(RGB(0,255,0))
  FlipBuffers()
  
Until quit

Aber sobald ich was mit der Keyboard Bibliothek mache verweigert er cmd+q, was ich aber dennoch möchte… Kann mir niemand helfen?

Test3:
Das Programm kann nicht mit cmd+q beendet werden. Warum?

Code: Alles auswählen

InitKeyboard()
InitSprite()

OpenWindow(0,0,0,600,800,"test")
OpenWindowedScreen(WindowID(0),0,0,600,800)

Repeat
  
  Repeat
    event = WindowEvent()
    Select event
      Case #PB_Event_CloseWindow
        quit = 1
      Case #PB_Event_Menu
        Select EventMenu()
          Case -1
            quit = 1
        EndSelect
    EndSelect
  Until event = 0
  
  
  ExamineKeyboard()
  
  If KeyboardPushed(#PB_Key_Escape)
    quit = 1
  EndIf
  

  ClearScreen(RGB(0,255,0))
  FlipBuffers()
  
Until quit

Re: cmd+q bzw. Tastenkombinationen abfragen

Verfasst: 09.08.2013 10:27
von gekkonier
Ich habe die Frage jetzt auch im englischen Forum gepostet, vielleicht weiss dort jemand etwas darüber:
http://www.purebasic.fr/english/viewtop ... 19&t=55866

Re: cmd+q bzw. Tastenkombinationen abfragen

Verfasst: 10.08.2013 13:01
von gekkonier
Shardik hat mir eine Lösung für mein Problem im englischen Forum gepostet, die funktioniert. Es scheint sich um einen Bug zu handeln.

Code: Alles auswählen

EnableExplicit

#NSCommandKeyMask = 1 << 20
#NSKeyDown        = 10

Define CurrentEvent.I
Define event.I
Define quit.I
Define SharedApplication.I

SharedApplication = CocoaMessage(0, 0, "NSApplication sharedApplication")

InitKeyboard()
InitSprite()

OpenWindow(0,0,0,600,800,"test")
OpenWindowedScreen(WindowID(0),0,0,600,800)

Repeat
 
  Repeat
    event = WindowEvent()
    Select event
      Case #PB_Event_CloseWindow
        quit = 1
      Case #PB_Event_Menu
        Select EventMenu()
          Case -1
            quit = 1
        EndSelect
    EndSelect
  Until event = 0

  CurrentEvent = CocoaMessage(0, SharedApplication, "currentEvent")

  If CurrentEvent
    If CocoaMessage(0, CurrentEvent, "type") = #NSKeyDown
      If CocoaMessage(0, CurrentEvent, "keyCode") = 12
        If CocoaMessage(0, CurrentEvent, "modifierFlags") & #NSCommandKeyMask
          quit = 1
        EndIf
      EndIf
    EndIf
  EndIf
 
  ExamineKeyboard()

  If KeyboardPushed(#PB_Key_Escape)
    quit = 1
  EndIf
 
  ClearScreen(RGB(0,255,0))
  FlipBuffers()
 
Until quit

Re: cmd+q bzw. Tastenkombinationen abfragen

Verfasst: 16.08.2013 11:25
von gekkonier
Da dies ein Bug zu sein scheint hab ich jetzt einen Thread im englischen Bugforum aufgemacht:

http://www.purebasic.fr/english/viewtop ... 24&t=56016