Label.width vs. ProgressBar
Frank
ich habe mir einen Statusbalken und eine Zeitanzeige für einen laufenden Prozess erstellt mit einem Label. Diesem Label wird dann mittels einer For Schleife die entsprechende Schrittweite der Label.Width Eigenschaft zugewiesen. Nun habe ich mal die Zeit gestoppt einmal:
mit Label Breite veränderlich und Zeit: 4:47min
ohne Label und nur Zeit: 2:10min
ganz ohne: 1:07min
Nun meine Frage: Bremst die DoEvents Anweisung den Prozess so aus und wenn ja wie kann man das optimieren? Wäre in diesem Fall eine ProgressBar besser und wenn ja wie steure ich diese an?
Viellcht sollte man auch die DoEvents ANweisung mit einer If Schleife umschließen und somit nicht ausführen..? Ich hoffe mein Anliegen ist verständlich.
Code Schnippsel:
Länge = 0 'Integer für Fortschrittsanzeige 1 (obere)
Länge2 = 0 'Integer für Fortschrittsanzeige 2 (untere)
Schritt = Hauptmenü.Label4.Width / LastRow
For k = 1 To LastRow 'diese For Schleife setzt den Wert für die Vergleichszeile
Fortschrittsanzeige_check = Hauptmenü.CheckBox10.value '0 = aus; -1 = an
Schritt2 = 252 / LastRow 'definieren von Delta
Länge2 = Länge2 + Schritt2 'Wert+1=Wert+Delta
If Fortschrittsanzeige_check = -1 Then
Hauptmenü.Label8.Width = Länge2
Hauptmenü.Label7.Caption = Format(k / LastRow, "0 %")
Else
End If
Time_set_on_2 = Timer 'Zeit für Zwischenzeit stoppen anschalten
Zeile = Zeile + 1
If Array_1(Zeile, 0) = "Yes" Then
Else
For l = Zeile + 1 To LastRow
Hauptmenü.Label14 = Format(Now - Zeit, "hh:mm:ss")
Hauptmenü.Label10.Caption = "Prüfe Zeile " & k & " mit Zeile " & l
Fortschrittsanzeige_check = Hauptmenü.CheckBox10.value '0 = aus; -1 = an
If Fortschrittsanzeige_check = -1 Then
Länge = Länge + Schritt
Hauptmenü.Label4.Width = Länge
Hauptmenü.Label5.Caption = Format(l / LastRow, "0 %")
Else
End If
DoEvents
Next l
End If
Länge = 0
DoEvents
Next k
Gruß, Frank