Einzelnen Beitrag anzeigen

Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#14

Re: ProgressBar für Anfänger

  Alt 1. Jun 2004, 12:38
Hi. Also wenn du in der Delphi Hilfe nachschaust (F1 drücken ), dann findet sich da denke ich, eine ganze Menge.

Aber trotzdem :

Die ProgressBar wird meistens für Fortschrittsanzeigen verwendet. Wenn du also zum Beispiel eine Schleife (For Schleife) hast, kannst du mit der ProgressBar dem Anwender zeigen, bei welchem Durchlauf die Schleife gerade ist.

Dazu sind eigentlich für den Anfang nur 2 (und eine "kleine") Eigenschaften und eine Prozedur wichtig:
  • Max: Max ist ein Integer Wert, der angibt, wann die ProgressBar zu 100 % ausgefüllt ist. Ist Max also z.B. 50, kann die ProgressBar in 50 Schritten voll ausgefüllt werden. Das hat aber nichts mit den "Kästchen", also den angezeigten Einheiten zu tun. Die werden je nach Breite der ProgressBar gleichmäßig verteilt.
  • Position: Position ist ebenfalls ein Integerwert, der angibt, bei welchem Schritt die ProgressBar sich gerade befindet. Wenn also Max z.B. wie im Normalfall 100 ist, und Position den Wert 50 hat, ist die ProgressBar ungefähr zur Hälfte ausgefüllt.
  • StepIt: StepIt ist eine Prozedur, die den Wert von "Position" erhöht. Im Normalfall wird Position durch "StepIt" um zehn erhöht.

    StepIt ist also eigentlich nur eine "Abkürzung" für

    ProgressBar.Position := ProgressBar.Position + x; //Im Normalfall ist x 10
  • Step: Step ist ein Integerwert, der Angibt, um wieviel die Prozedur "StepIt" die Eigenschaft Position erhöht. Setzt du also Step auf 20, wird bei jedem "StepIt" die Eigenschaft Position um 20 erhöht.

    Alternativ zu "StepIt" und "Step" kann man auch die Funktion "StepBy(x)" verwenden. "x" muss dann ein Integerwert sein. Mit StepBy kannst du Position um die in Klammern angegebene Zahl hinauf, oder hinunter setzen (dann eben mit einer negativen Zahl)

Zum Abschluss vielleicht noch ein kleines Beispiel:
Du hast eine ListBox und möchtest jeden Eintrag in eine zweite Listbox kopieren. Dabei soll der Fortschritt in einer ProgressBar angezeigt werden.

Delphi-Quellcode:
var i, anz: Integer; //i ist die Zählvariable für die For Schleife und anz (Für Anzahl) ist eine Variable, in der wir zur Vereinfachung die Anzahl der Einträge in der Listbox zwischenspeichern.

begin
  anz := ListBox1.Items.Count; //Anzahl der Einträge wird zwischengespeichert
  ProgressBar.Position := 0; //ProgressBar wird auf 0 gesetzt.
  ProgressBar.Max := anz; //Max wird auf die Anzahl der Listbox Einträge gesetzt
  ProgressBar.Step := 1; //Die Anzahl der Schritte für StepIt wird festgelegt

  For i := 0 to anz -1 do //-1, da der Index von Lilstboxeinträgen bei 0 anfängt und so andernfalls ein Schritt zuviel da wäre.
    begin
      ListBox2.Items.Add(ListBox1.Items[i]); //Der ListBox wird ein neuer Eintrag hinzugefügt und
      ProgressBar.StepIt; //Position wird um eins nach oben gesetzt.
    end;

  ProgressBar.Position := 0;
end;
So, ich hoffe, dass dir das etwas weitergeholfen hat.

Man liest sich, Stanlay

[Edit] Also als ich zu schreiben angefangen hab, waren da noch keine Antworten. Aber so is das halt in der DP [/Edit]
  Mit Zitat antworten Zitat