![]() |
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: |
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. |
Um was geht es denn genau?
|
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 |
:oops: meinte ich doch :oops:
position |
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; |
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'); |
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 ... |
Um bei dem Beispiel zu bleiben: Im Objektinspektor Max auf 25 setzen, Step auf eins und in der Schleife immer Progressbar1.StepIt aufrufen - fertig.
|
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 12:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz