Rubrik: Controls · StatusBar/ProgressBar | VB-Versionen: VB4, VB5, VB6 | 27.10.02 |
Die StatusBar im Einsatz Ein paar Beispiele, wie und wann sich die StatusBar aus den Windows Common Controls sinnvoll einsetzen lässt. | ||
Autor: Dietmar G. Bayer | Bewertung: | Views: 23.851 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Wenn sich Vorgange (Berechnungen, Laden, Speichern) etwas länger hinziehen, sollte man den Benutzer darauf aufmeksam machen und ihm auch sagen, dass der Vorgang beendet ist. Für diesen Zweck eignet sich die StatusBar aus den Windows Common Controls sehr gut.
Beim Platzieren auf die Form legt sich die StatusBar automatisch an den unteren Rand des Fensters. Solch eine StatusBar kann einige Panels (Felder) enthalten, die automatich mit Datum, Uhrzeit und Tastenstatus belegt werden können. Word z.B. benutzt ebenfalls solch eine StatusBar für diverse Informationsausgaben.
Um eine Informations-Ausgabe für unsere Zwecke zu erhalten nehmen wir das ganz linke Panel(1).
Die Subroutine lautet dann:
Public Sub MsgBar(F As Form, _ rsMsg As String, _ Optional rPauseFlag As Boolean) ' Parameter: ' ' F: Form mit der StatusBar ' rsMsg: Nachricht, die angezeigt werden soll ' rPauseFlag: optional für die Einblendung eines ' Zusatztextes (True/False) With F.StatusBar1 If Len(rsMsg) = 0 Then ' Keine Nachricht, Mauszeiger zurücksetzen Screen.MousePointer = vbDefault ' Text ausgeben .Panels(1).Text = "Fertig" Else ' Nachricht anzeigen If rPauseFlag Then ' Wenn das PauseFlag gesetzt: mit Text "bitte warten..." .Panels(1).Text = rsMsg & ", bitte warten...." Else ' bzw. ohne zusätzlichen Text .Panels(1).Text = rsMsg End If End If ' StatusBar aktualisieren .Refresh DoEvents End With End Sub
Der Aufruf erfolgt geht dann so (vorausgesetzt Sie haben auf die Form eine StatusBar mit der Bezeichnung StatusBar1 platziert):
' Für längere Vorgänge MsgBar Me,"Berechnet Werte",true ' berechnet irgentwas ... ' Fertig MsgBar Me,""
oder
' zur Anzeige der aktuellen MausPosition Private Sub Form_MouseMove(Button As Integer, _ Shift As Integer, X As Single, Y As Single) ' Mauskoordinaten in der StatusBar anzeigen MsgBar Me, "Mauszeiger befindet sich in an Punkt " & _ cStr(x) & " / " & cStr(y) End Sub
' zurüchsetzten mit: MsgBar Me,""
Hier gibt natürlich noch eine Menge anderer Einsatz-Möglichkeiten...
Viel Spaß!