Fortschrittsbalken in Visual Basic in der Titelleiste erstellen

Ein Fortschrittsbalken der besonderen Art

Die Titelleiste führt oft ein stiefmütterliches Dasein. Für einen Fortschrittsbalken, der nur bei Bedarf angezeigt wird, wäre dies doch ein brauchbarer Platz. Nur Visual Basic sträubt sich dagegen, irgendetwas anderes außer Text zuzulassen. Sie erfahren hier einen Trick, wie Sie doch eine Art Balken erstellen können.

Um einen Balken anzuzeigen, benutzen wir einfach eine ASCII-Grafik, das heißt wir bauen einen Balken aus Buchstaben und Sonderzeichen zusammen. Auf der Tastatur finden wir auf der Taste für die Zeichen < und > auch das Zeichen |. Dieses Zeichen erhalten Sie, indem Sie die Taste AltGr zusammen mit der Taste < drücken. Diesen senkrechten Strich benutzen wir als Grafikelement.

Hier der Code für ein Beispielprogramm:

Private Sub Form_Load()

Dim i As Integer

Dim j As Long

 

    Me.Visible = True

    DoEvents

    For i = 0 To 200

        Me.Caption = "Beispielprogramm:   " & Format(i, "000:  ") & String(i, "|")

        For j = 0 To 200000

            DoEvents

        Next j

    Next I

    Me.Caption = "OK"

End Sub

Und hier eine kurze Erklärung des Programms:

Private Sub Form_Load()

Im Ladeteil der Form führen wir das Programm aus, so brauchen wir keinen Button.

Dim i As Integer

Dies ist der Schleifenzähler für den Balken.

Dim j As Long

Dies ist der Schleifenzähler für die Wartezeit, damit man den Balken in Ruhe betrachten kann.

    Me.Visible = True

Da wir das Programm im Ladeteil ausführen, müssen wir das Fenster manuell einschalten.

    DoEvents

Warten auf das Erscheinen des Fensters.

    For i = 0 To 200

Der Balken soll aus 201 Elementen bestehen. Das gibt uns genug Zeit, den Balken zu beobachten.

        Me.Caption = "Beispielprogramm:   " & Format(i, "000:  ") & String(i, "|")

Me.Caption zeigt den gewünschten Text in der Titelleiste an.

"Beispielprogramm:   " ist nur ein erklärender Text für den Anwender. Hier könnte "Laden" oder "Speichern" oder "Berechnung läuft" oder sonst etwas Kluges stehen.

Format(i,"‘000:  ") zeigt den Wert des Schleifenzählers als dreistellige Zahl an.

String(i, "|") baut den eigentlichen Balken. Dieser Befehl gibt i mal das Zeichen | hintereinander aus. Hat i den Wert 5 so würde das Ergebnis so aussehen: |||||.

         For j = 0 To 200000

            DoEvents

        Next j

Diese drei Zeilen verbrauchen einfach nur Zeit, damit der Balken auch sichtbar wird.

     Next I

Nächster Balken bitte

    Me.Caption = "OK"

Nicht vergessen, der Balken wird nicht weiter gebraucht und kann gelöscht werden. Dazu wird nur ein einigermaßen sinnvoller Text ausgegeben. Wird dieses Programmschnipsel universal eingesetzt, so bietet sich an, den Inhalt von Me.Caption zwischenzuspeichern und danach wieder zurückzuschreiben. Etwa so:

Dim zw as String (diese und die nächste Zeile natürlich am Programmanfang)

zw = Me.Caption

Me.Caption = zw

End Sub

Das war’s. Ein kleines, ressourcensparendes Programm.

Veröffentlicht am 31. Juli 2012