Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi progress bar (https://www.delphipraxis.net/1625-progress-bar.html)

Timo 14. Dez 2002 14:50


progress bar
 
hi!
wie benutze ich richtig eine progress bar?
wenn ein button gedrückt wird, wird ein prozess in gang gesetzt, der auch etwas länger dauern kann - in dieser zeit soll der status angezeigt werden!

danke schön!

:nerd: Timo :nerd:

nailor 14. Dez 2002 14:54

Ich weiss nicht, ob das die perekt lösung ist, aber ich hab das bis jetzt so gemacht.

angenommen, du löst mit dem button 100 mathmatische berechnungen aus. dann hab ich einfach nach jeder berechnung die .progress eigenschaft der progressbar um 1 erhöht.

Luckie 14. Dez 2002 15:05

Um was geht es denn genau?

Sebastian Nintemann 14. Dez 2002 15:10

Hallo, die Eigenschaft ist Position, nicht Progress (zumindest in D6). So wie Kalle es gemacht hat ist es wohl am sinnvollsten. Wenn du nicht zufälligerweise genau 100 Berechnungen hast dann setze die Eigenschaft Max auf die Anzahl deiner Berechnungen (bzw eine andere sinnvolle Zahl). Bei langen Schleifen kannst du ja auch nach jeden Block (der irgendwas Bestimmtes macht) erst die Progressbar aktualisieren und dann anzeigen was grad gemacht wird bzw was fertiggestellt wurde.

Gruß, Sebastian

nailor 14. Dez 2002 15:15

:oops: meinte ich doch :oops:

position

Timo 14. Dez 2002 15:20

also wie genau erhöhe ich die stelle?

repeat bla bla bla
// hier soll er um 1 erhöhen - es werden 26 durchgänge gemacht
for i := 1 to length(eingabe) do
begin
bla bla bla
end;
until blablabla = 26;
begin
showmessage('Finished!!!');
end;

end;

nailor 14. Dez 2002 15:25

Delphi-Quellcode:
progressbar1.max := 26;
progressbar1.position := 0;
for i := 0 to 25 do
   begin
   //hier deine schöne rechnung
   progressbar1.position := inc(progressbar1.position);
   end;
Showmessage('Puh! Ich armer PC hab alles gerechnet');

Timo 14. Dez 2002 15:32

danke schön!

das mit dem inc klappt nicht - einfach + 1 ... frag mich nicht warum!

gibt es eine site wo man solche sachen wie z.b. eine progress bar einbauen nachlesen kann? oder könnt ihr ein buch empfehlen? bin nämlich noch relativ ungeübt in delphi selbst und komme mit den radio buttons und so noch nicht so gut zurecht ...

Luckie 14. Dez 2002 15:36

Um bei dem Beispiel zu bleiben: Im Objektinspektor Max auf 25 setzen, Step auf eins und in der Schleife immer Progressbar1.StepIt aufrufen - fertig.

Luckie 14. Dez 2002 15:47

Hier mal zwei Beispiel, weil heute samstag ist (und es mir beschissen geht):
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Progressbar1.Max := 26;
  Progressbar1.Min := 0;
  Progressbar1.Step := 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  i : Integer;
begin
  for i := 0 to 25 do
  begin
    Sleep(100);
    Progressbar1.StepIt;
    if Progressbar1.Position = Progressbar1.Max then
      Progressbar1.Position := 0;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i : Integer;
begin
  for i := 0 to 25 do
  begin
    sleep(50);
    Progressbar1.Position := Progressbar1.Position+1;
    if Progressbar1.Position = Progressbar1.Max then
      Progressbar1.Position := 0;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:33 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz