Fortschrittsanzeige
Eine Fortschrittsanzeige (auch Fortschrittsbalken, Ladebalken, Statusbalken englisch progress bar[1]) ist ein Steuerelement, das anzeigt, wie weit die Bearbeitung eines Auftrags fortgeschritten ist bzw. dass die Bearbeitung im Gange ist, z. B. der Fortschritt eines Installations- oder Ladevorgangs. Es ist die Computer-Entsprechung der Bargraph-Anzeige. In der aktuellen Microsoft-Terminologie heißt dieses Element Statusanzeige.
Bestimmte Fortschrittsanzeige
Meist als Fortschrittsbalken mit Prozentangabe ausgeführt. Die Fortschrittsanzeige besteht in der Regel aus einem farbigen Balken, der den Fortschritt eines Vorgangs optisch wiedergibt, indem er von 0 % auf 100 % anwächst, sowie meist einer Prozentanzeige, die angibt, wie weit der Vorgang bereits abgeschlossen ist. Daraus ergibt sich ungefähr die Restdauer des Vorgangs. Fortschrittsbalken finden sich auch oft bei Download-Programmen oder bei der Installation von Softwarepaketen. ISO 9241-161 empfiehlt, dass eine Fortschrittsanzeige so gestaltet sein sollte, dass sie nicht mit einem Schieberegler verwechselt wird.[2]
Unbestimmte Fortschrittsanzeige
Eine Variante ist eine Anzeige, die keine Fortschrittsanzeige mit bestimmtem Ende des Vorgangs anzeigen kann, da nicht bekannt ist, wie lange noch bis zur Komplettierung der Aktion gewartet werden muss, wo aber trotzdem deutlich gemacht werden soll, dass der Computer aktiv weiterarbeitet und nicht hängengeblieben ist. Diese Anzeige kann als unbestimmter Fortschrittsbalken realisiert werden, der statt eines Bargraphen einen Teilbalken ohne Prozentangabe verwendet, der sich fortwährend in eine Richtung bewegt und am Ende der Anzeige sofort wieder zurückgesetzt und abläuft.
Alternativen dazu sind Elemente wie Throbber oder Mauszeiger in Warteform (z. B. Sanduhr), oder im Textmodus beispielsweise Escape-Sequenzen ohne Cursor-Weiterbewegung.
Textbasierte Fortschrittsanzeige
Bei Geräten, vor allem in früheren Zeiten, als die Grafikfähigkeiten noch nicht so entwickelt waren, wurden Fortschrittsbalken auch oft in Textdarstellung aus einer wachsenden Reihe von gleichartigen Zeichen gebildet, wie beispielsweise XXXXXX...
.
Als textbasierter Vorläufer des Throbbers gilt die immerwiederkehrende Folge der Zeichen |/-\, die an der gleichen Cursor-Position ausgegeben wurden. Diese textbasierten Animationen waren schon in frühen Versionen von UNIX und DR DOS in den 1980er Jahren zu finden.
Ressourcen
Die Anzeige der Fortschrittsanzeige verbraucht zwar auch Ressourcen und kann somit unter Umständen die Gesamtdauer des Vorganges erhöhen, jedoch ist dies in der Praxis zurzeit kaum im relevanten Bereich. Außerdem kann damit dem Benutzer vereinfacht angezeigt werden, dass das Programm noch funktioniert und arbeitet.
Trivialpatent
Auf die Entwicklung des Fortschrittsbalkens wurde von Thomas Poslinski und Kim Annon Ryal ein Patent[3] über die Firma Sony angemeldet, das als Trivialpatent gilt.
Programmierung
C#
Das folgende Beispiel in der Programmiersprache C# zeigt die Implementierung eines Hauptfensters mit einem Fortschrittsbalken und einem Listenfeld. In das Listenfeld werden Dreieckszahlen eingetragen. Dabei wird der Fortschrittsbalken weitergesetzt.[4]
using System.Windows.Forms;
public class MainForm : System.Windows.Forms.Form
{
private System.Windows.Forms.ListBox triangularNumbersListBox;
private System.Windows.Forms.ProgressBar newProgressBar;
// Konstruktor des MainForms.
public MainForm()
{
InitializeControls();
}
// Startet die Anwendung und erzeugt das MainForm durch Aufruf des Konstruktors.
public static void Main()
{
Application.Run(new MainForm());
}
// Initialisiert das Listenfeld und die Fortschrittsanzeige.
private void InitializeControls()
{
// Erzeugt ein Listenfeld eine Fortschrittsanzeige durch Aufruf der Standardkonstruktoren.
triangularNumbersListBox = new ListBox();
newProgressBar = new ProgressBar();
SuspendLayout();
triangularNumbersListBox.Location = new System.Drawing.Point(50, 50);
triangularNumbersListBox.Size = new System.Drawing.Size(200, 100);
triangularNumbersListBox.MultiColumn = false;
triangularNumbersListBox.SelectionMode = SelectionMode.One;
Controls.Add(triangularNumbersListBox);
int minimum = -10;
int maximum = 10;
newProgressBar.Location = new System.Drawing.Point(50, 200);
newProgressBar.Minimum = 1;
newProgressBar.Maximum = maximum - minimum + 2;
newProgressBar.Value = 1; // Setzt den Anfangswert der Fortschrittsanzeige.
newProgressBar.Step = 1; // Setzt die Schrittweite der Fortschrittsanzeige.
Controls.Add(newProgressBar);
// Diese for-Schleife trägt die Dreieckszahlen -10 * -9 / 2, -9 * -8 / 2, ..., 9 * 10 / 2, 10 * 11 / 2 in das Listenfeld ein.
triangularNumbersListBox.BeginUpdate();
for (int i = minimum; i <= maximum; i++)
{
int triangularNumber = i * (i + 1) / 2;
triangularNumbersListBox.Items.Add(triangularNumber.ToString());
newProgressBar.PerformStep(); // Setzt die Fortschrittsanzeige einen Schritt weiter.
}
triangularNumbersListBox.EndUpdate();
Text = "Fortschrittsbalken";
ResumeLayout(false);
PerformLayout();
}
}
Weblinks
Einzelnachweise
- Progress Bar. Enterprise-Gamification.com, archiviert vom am 25. Januar 2014; abgerufen am 22. Februar 2014 (englisch).
- ISO 9241-161, Nr. 8.30.5
- Patent US7290698B2: Progress bar with multiple portions. Veröffentlicht am 6. November 2007, Erfinder: Thomas Poslinski, Kim Annon Ryal.
- Microsoft Docs: ProgressBar Class