Hallo
das hört sich gut an, so in etwa hatte ich mir das auch gerade
schon überlegt.
Fein, und nach Durchsicht meines damaligen Codes und der Aufzeichnungne muß ich Fehler eingestehen: Es ist mir NICHT gelungen das Label vor die Progressbar bzw. die Textboxen zu bringen. - Vielmehr hatte ich ausschließlich Label benutzt!
Asche auf mein Haupt… Nächstesmal werde ich erst nachlesen und dann posten, versprochen!
Ausserdem habe ich vorher immer von Prozentwert gesprochen, was natürlich Prozentsatz lauten muß…
Nun aber zur Anzeige. (Ich habe schnell ein Beispiel zusammengetippert)
Bastel Dir mal eine Form mit 3 Label („lblVorne“, „lblHinten“ und „lblProzentanzeige“ - und einem Timer („Timer1“).
Platziere zunächst das lblHinten, in der Originalgröße der späteren Progressbar.
Darüber legst du das Label lblVorne, welches in der Breite kleiner sein darf, wird eh auf 0 gesetzt. (Rechtsklick -> Vordergrund nicht vergessen)
das Label lblProzentanzeige wird wiederum über beide Labels gelegt und in den Vordergrund gesetzt.
Alle Farbeinstellungen, Schriftfarbe, Transparenz etc. werden beim Starten der Form initialisiert.
(Der Fortschritt erfolgt hier Zeigesteuert, das mußt Du natürlich Deinem Auslöser anpassen)
Und hier ist der Code:
Option Explicit
'###############################################################################
'### On Form Load... ###########################################################
'###############################################################################
Private Sub Form\_Load()
Form1.AutoRedraw = True
'Einstellungen für das 'hintere Label'
lblHinten.BackColor = &HFFFFFF 'Weiß
lblHinten.Caption = "" 'Text verwirrt nur
'Einstellungen für das 'hintere Label'
lblVorne.BackColor = &HFF0000 'Blau
lblVorne.Caption = "" 'Text verwirrt nur
lblVorne.Width = 0 'Wir fangen ja bei 0 an
'Einstellungen für das Prozentlabel
lblProzentanzeige.Alignment = 2 'Zentrierte Anzeige
lblProzentanzeige.BackStyle = 0 'Transparenz
lblProzentanzeige.Font.Bold = True 'Es folgen Schrifteinstellungen
lblProzentanzeige.Font.Size = 14
lblProzentanzeige.Font.Name = "Courier New"
lblProzentanzeige.ForeColor = &HFF& 'Schriftfarbe "Knallrot"
'Timereinstellungen
Timer1.Interval = 500 'Schrittweite 1/2 Sekunde
End Sub
'###############################################################################
'### Timerroutine ##############################################################
'###############################################################################
Private Sub Timer1\_Timer()
'100 Sekunden sollen 100 % entsprechen, 0,5 Sekunden = 0,5%
lblVorne.Width = lblVorne.Width + lblHinten.Width \* 0.5 / 100
lblProzentanzeige = CStr(CInt(lblVorne.Width \* 100 / lblHinten.Width)) & " %"
If lblVorne.Width \>= lblHinten.Width Then
Timer1.Enabled = False
End If
End Sub
Hoffe es gefällt.
Hilfreich ist auch ein Blick bei http://www.vbarchiv.net/
-> http://www.vbarchiv.net/archiv/tipp_41.html
Benutzt auch Label, aber die Schrifttype Wingdings, ohne Prozentanzeige
-> http://www.vbarchiv.net/archiv/tipp_792.html
Eine „WaitBar“
(Meint ihr mein Code wäre es wert bei VB@rchive veröffentlicht zu werden?)
Grüße, Michael