Seite 1 von 1

CanvasGadget- Event wird mehrfach ausgeführt

Verfasst: 03.08.2013 12:52
von Justin
Hallo zusammen,

ich habe folgenden Code- Schnippsel:

Code: Alles auswählen

OpenWindow(0,0,0,200,200,"Test",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
CanvasGadget(0,10,10,40,40, #PB_Canvas_Border)


Procedure.i CanvasEvent(Gadget)
  If GetGadgetAttribute(Gadget, #PB_Canvas_Buttons) = #PB_Canvas_LeftButton
    Debug "Leftclick"
  endif
EndProcedure

Repeat
  Event = WaitWindowEvent()
  Select Event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case 0
          CanvasEvent(0)
      EndSelect
  EndSelect
Until Event = #PB_Event_CloseWindow
Dabei wird beim ersten Click auf das CanvasGadget immer nicht nur ein sonder fünf Ereignisse ausgegeben. Die weiteren Clcik lösen dann wie gewünscht nur ein Ereignis aus.
Woran liegt das?

Gruß
Justin

Re: CanvasGadget- Event wird mehrfach ausgeführt

Verfasst: 03.08.2013 13:01
von Kiffi

Code: Alles auswählen

Procedure.i CanvasEvent(Gadget)
  If EventType() = #PB_EventType_LeftClick ; EventType abfragen!
    Debug "Leftclick"
  EndIf
EndProcedure
Grüße ... Kiffi

Re: CanvasGadget- Event wird mehrfach ausgeführt

Verfasst: 03.08.2013 13:11
von Justin
jo, so funktioniert es, danke.

Aber das müsste doch auch über die Attributabfrage des Canvas funktionieren? Oder habe ich das völlig falsch verstanden?

Gruß
Justin

Re: CanvasGadget- Event wird mehrfach ausgeführt

Verfasst: 03.08.2013 13:35
von Kiffi
Justin hat geschrieben:Aber das müsste doch auch über die Attributabfrage des Canvas funktionieren?
mit PB_Canvas_LeftButton prüfst Du, ob der linke Button gedrückt ist ("The left button is currently down"). Dieses Event kommt mehrfach. Kannst Du ganz gut sehen, wenn Du in Deinem Code die Maustaste drückst und ein wenig mit der Maus hin- und herfährst.

Grüße ... Kiffi

Re: CanvasGadget- Event wird mehrfach ausgeführt

Verfasst: 03.08.2013 13:46
von Justin
Verstehe. Wobei ich ab dem zweiten Click ja nicht anderes mit der Maus mache, ab diesem Zeitpunkt aber immer nur ein Event auftritt.

Gruß
Justin