webForumDet fria alternativet

ProgressBar problem

2 svar · 209 visningar · startad av fesken

feskenMedlem sedan sep. 200228 inlägg
#1

Har lite problem med min Progress Bar, den springer ju iväg på hundradelen av en sekund. Det jag vill är att den laddas "x" antal sekunder. Säg tio sekunder. Då behöver man en timer, men hur slänger man in den i koden?

Dim Counter As Integer
Dim Workarea(250) As String
    
    
    ProgressBar1.Min = LBound(Workarea)
    ProgressBar1.Max = UBound(Workarea)
    ProgressBar1.Visible = True
    ProgressBar1.Value = ProgressBar1.Min

    For Counter = LBound(Workarea) To UBound(Workarea)
    
    
        Workarea(Counter) = 100000000
        ProgressBar1.Value = Counter

Next Counter
    ProgressBar1.Visible = False
    ProgressBar1.Value = ProgressBar1.Min
JonMedlem sedan juli 20011 126 inlägg
#2

Du lägger in timern i formuläret.
Redigera egenskaperna för timern och sätt ett intervall, typ 500 för varje halv sekund.

Lägg din kod (modifierad) i timer-eventet som du kommer till när du klickar på själva timern på formuläret i designläge.

Om du inte vill att den ska hålla på i evighet får du använda nån variabel och kolla emot och sen stänga av timern när du är klar. :)

Nexus86Medlem sedan okt. 20022 683 inlägg
#3

Som Jon säger eller också helt timerfritt:

Dim Counter As Integer
Dim T as Double
Dim Workarea(250) As String

    ProgressBar1.Min = LBound(Workarea)
    ProgressBar1.Max = UBound(Workarea)
    ProgressBar1.Visible = True
    ProgressBar1.Value = ProgressBar1.Min

    For Counter = LBound(Workarea) To UBound(Workarea)
        Workarea(Counter) = 100000000
        ProgressBar1.Value = Counter
        T = Timer + 0.5    'om du vill att den ska vänta en halv sekund
        Do Until Timer > T
            DoEvents
        Loop
    Next Counter
    ProgressBar1.Visible = False
    ProgressBar1.Value = ProgressBar1.Min

Du kan byta ut 0.5 mot den tid i sekunder du vill att den ska vänta emellan varje gång.

Genererad på 386 ms · cache AV · v20260730165559-full.f96bc7eb