Da in der Eventschleife eine separate Schleife zum Füllen benutzt wird, kann erst nach Beendigung dieser Schleife das nächste Event (WaitWindowEvent()) ermittelt und ausgewertet werden.
Es ist auch unter Windows nicht empfehlenswert, so die ProgressBar zu füllen, weil das Fenster während des Füllvorgangs nicht reagiert. (Keine Rückmeldung der Ereignisverarbeitung)
Hast du schon mit Timer versucht?
Das sollte auch unter MacOS funktionieren:
Code:
EnableExplicit
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ProgressBarGadget(1, 10, 10, 370, 20, 0, 1000, 0)
ButtonGadget(2, 390, 10, 100, 20, "Start", 0)
Repeat
Select WaitWindowEvent()
Case #PB_Event_Gadget
Select EventGadget()
Case 2
AddWindowTimer(0, 1, 10)
Debug "Start"
EndSelect
Case #PB_Event_Timer
Select EventTimer()
Case 1
SetGadgetState(1, GetGadgetState(1)+1)
If GetGadgetState(1) = 1000
RemoveWindowTimer(0, 1)
Debug "Ende"
EndIf
EndSelect
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndIf