Aktuelle Zeit: 24.07.2019 10:54

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Progressbar fortlaufend füllen
BeitragVerfasst: 02.07.2019 21:44 
Offline

Registriert: 29.08.2004 11:05
Wohnort: Berlin
Ich will eine Progressbar fortlaufend füllen.
Unter Windows gab diesbezüglich bisher keine Probleme.

Code:
OpenWindow(0, 150,150,800,100, "Hauptfenster", #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
ButtonGadget(11, 600, 25, 80, 50, "Start")
ProgressBarGadget(10, 50, 30, 520, 30, 0, 1000)
Repeat
  Event = WindowEvent()
  If event = #PB_Event_CloseWindow
    End
  EndIf
  If Event=#PB_Event_Gadget
    Select EventGadget()
      Case 11
        a= 0
        SetGadgetState(10, a)
        While a <> 1001
          SetGadgetState(10, a)
          a = a + 1
          Debug a
          Delay(10)
        Wend
    EndSelect
  EndIf
Until quit

Der Code macht unter Windows was ich erwarte.

Auf dem Mac füllt sich die Progressbar nicht, sondern bleibt leer. Erst am Ende zeigt sie mit einem Schlag 100% an.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Progressbar fortlaufend füllen
BeitragVerfasst: 02.07.2019 22:11 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
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

_________________
BildBildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Progressbar fortlaufend füllen
BeitragVerfasst: 03.07.2019 10:06 
Offline
Benutzeravatar

Registriert: 24.11.2004 13:12
Wohnort: Germany
Schau mal hier...

Link: viewtopic.php?f=8&t=31528

_________________
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner v1.x / OOP-BaseClass-Modul / OPC-Helper DLL
PB v3.30 / v5.4x - OS Mac Mini OSX 10.xx / Window 10 Pro. (X64) /Window 7 Pro. (X64) / Window XP Pro. (X86) / Ubuntu 14.04
Downloads auf Webspace


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Progressbar fortlaufend füllen
BeitragVerfasst: 03.07.2019 16:25 
Offline

Registriert: 29.08.2004 11:05
Wohnort: Berlin
Danke für die Hilfe, jetzt geht’s. :D


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye