CanvasGadget- Event wird mehrfach ausgeführt

Für allgemeine Fragen zur Programmierung mit PureBasic.
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

CanvasGadget- Event wird mehrfach ausgeführt

Beitrag 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
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: CanvasGadget- Event wird mehrfach ausgeführt

Beitrag von Kiffi »

Code: Alles auswählen

Procedure.i CanvasEvent(Gadget)
  If EventType() = #PB_EventType_LeftClick ; EventType abfragen!
    Debug "Leftclick"
  EndIf
EndProcedure
Grüße ... Kiffi
a²+b²=mc²
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

Re: CanvasGadget- Event wird mehrfach ausgeführt

Beitrag 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
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Benutzeravatar
Kiffi
Beiträge: 10725
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: CanvasGadget- Event wird mehrfach ausgeführt

Beitrag 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
a²+b²=mc²
Justin
Beiträge: 167
Registriert: 09.09.2008 16:46

Re: CanvasGadget- Event wird mehrfach ausgeführt

Beitrag 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
PB 5.11 x64 / Kubuntu 12.10 x64 | Windows 7 x64
Antworten