Wenn man nicht mit Threads arbeiten möchte, sollte man in deinem Fall das CanvasGadget nehmen und kein ButtonGadget.
Bei dem Canvas kann man die Events des Mausklicks spezieller auswerten. (als Beispiel : #PB_EventType_LeftButtonDown/#PB_EventType_LeftButtonUp)
Edit : Hier ein kurzer Code um zu zeigen wie ich das meine ....
Code: Alles auswählen
EnableExplicit
Define MaustasteUnten = #False
Define TextGadget, Canvas, Event, Quit, Pos
OpenWindow(0, 0, 0, 640, 480, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
TextGadget = TextGadget(#PB_Any, 10, 10, 100, 20, "0")
Canvas = CanvasGadget(#PB_Any, 130, 10, 100, 20)
StartDrawing(CanvasOutput(Canvas))
Box(0,0,OutputWidth(),OutputHeight(), $000000)
StopDrawing()
Repeat
Event = WaitWindowEvent(25) ; Mit Timeout, damit die Schleife auch ausgeführt wird wenn nichts passiert.
If MaustasteUnten
Pos + 1
SetGadgetText(TextGadget, Str(Pos))
EndIf
Select Event
Case #PB_Event_CloseWindow
Quit = 1
Case #PB_Event_Gadget
Select EventGadget()
Case Canvas
Select EventType()
Case #PB_EventType_LeftButtonDown
MaustasteUnten = #True
StartDrawing(CanvasOutput(Canvas))
Box(0,0,OutputWidth(),OutputHeight(), $FF0000)
StopDrawing()
Case #PB_EventType_LeftButtonUp
MaustasteUnten = #False
StartDrawing(CanvasOutput(Canvas))
Box(0,0,OutputWidth(),OutputHeight(), $000000)
StopDrawing()
EndSelect
EndSelect
EndSelect
Until Quit > 0