![]() |
ProgressBar ohne sleep aber mit delay
Hi.
Ich hab ein Problem und komme nicht weiter, bin auch noch Anfänger. Und zwar habe ich eine ProgressBar auf meiner Form, die nach 10 sekunden voll sein soll.
Delphi-Quellcode:
Das Problem ist nur hierbei, dass das Programm diese 10 sekunden lang lahm gelegt ist und man nichts machen kann. Ich habe irgendwo gelesen, dass man das mit delay machen kann, aber ich kenn mich da nicht mit aus. Schließlich will ich ja in den 10 sekunden noch das Programm bedienen bzw. etwas anklicken. Könnt ihr den Quelltext verbessern?
procedure TForm1.FormCreate(Sender: TObject);
var i : Integer; begin ProgressBar1.Min:=0; ProgressBar1.Max:=100; for i:=0 to 100 do begin ProgressBar1.Position:=i; Sleep(100); end; end; |
Re: ProgressBar ohne sleep aber mit delay
Zitat:
[delphi]procedure TForm1.FormCreate(Sender: TObject); var i : Integer; begin ProgressBar1.Min:=0; ProgressBar1.Max:=100; for i:=0 to 100 do begin ProgressBar1.Position:=i; Application.ProzessMessages; Sleep(100); end; end; Gruß Matthias |
Re: ProgressBar ohne sleep aber mit delay
schau mal nach delay in der codelib, das macht das was Du willst.
Grüße Klaus |
Re: ProgressBar ohne sleep aber mit delay
Zitat:
es muss natürlich so lauten procedure TForm1.FormActivate(Sender: TObject); var i : Integer; begin ProgressBar1.Min:=0; ProgressBar1.Max:=100; for i:=0 to 100 do begin ProgressBar1.Position:=i; Application.ProcessMessages; Sleep(100); end; end; Gruß Matthias |
Re: ProgressBar ohne sleep aber mit delay
Danke erstmal, werde es gleich ma ausprobieren, melde mich vielleicht später nochmal wenn es geklappt hat.
|
Re: ProgressBar ohne sleep aber mit delay
Ich hab schon ne andere Lösung gefunden, aber trotzdem tritt wieder einmal ein Problem auf, das ich ganz und gar nicht verstehen kann.
Hier mein Quelltext
Delphi-Quellcode:
Ich habe 2 Formulare. Im ersten habe ich eine Progressbar1 und im zweiten Progressbar2, trotzdem zeigt er mir im zweiten Formular den gleichen Fortschritt wie in Formular1 an, obwohl ich ganz andere Timer und ProgressBars benutze. Und im ersten Formular schalte ich den timer3 durch enabled:=false aus. Warum habe ich denn immer noch den gleichen Fortschritt, ich versteh das einfach nicht. Liegt es vielleicht daran, dass das Formular1 die MAINFORM ist?
procedure TForm1.FormCreate(Sender: TObject);
begin timer3.Enabled:=true; end; procedure TForm1.Timer3Timer(Sender: TObject); begin progressbar1.Position := progressbar1.Position + 1; if progressbar1.position=97 then label16.caption:='3...'; if progressbar1.position=98 then label16.caption:='2...'; if progressbar1.position=99 then label16.caption:='1...'; if progressbar1.Position = 100 then begin timer3.Enabled := false; close; end; end; procedure TForm1.Button14Click(Sender: TObject); begin timer3.Enabled:=false; end; procedure TForm2.Timer4Timer(Sender: TObject); begin progressbar2.Position := progressbar2.Position + 1; if progressbar2.position=97 then label16.caption:='3...'; if progressbar2.position=98 then label16.caption:='2...'; if progressbar2.position=99 then label16.caption:='1...'; if progressbar2.Position = 100 then begin timer4.Enabled := false; close; end; end; procedure TForm2.FormCreate(Sender: TObject); begin timer4.Enabled:=true; end; |
Re: ProgressBar ohne sleep aber mit delay
:?: Kann mir keiner dabei helfen?
|
Re: ProgressBar ohne sleep aber mit delay
Auch wenn es nicht ganz zum Thema passt:
Delphi-Quellcode:
[edit] :mrgreen:
procedure TForm1.Timer3Timer(Sender: TObject);
begin with Progressbar1 do begin Position := Position + 1; Case Position of 97 : Label16.caption := '3...'; 98 : Label16.caption := '2...'; 99 : Label16.caption := '1...'; 100: Timer3.Enabled := False; end; end; if not Timer3.Enabled then Close; end; Hab dann doch noch was zum Thema xD.
Delphi-Quellcode:
Wird beim starten des Programms ausgeführt. Du solltest das Timer4.Activate; im OnShow-Event des 2. Formulars machen. ;)
procedure TForm2.FormCreate(Sender: TObject);
begin timer4.Enabled:=true; end; [/edit] MfG freak |
ProgressBAr mit timer und zwei Formularen
Habt ihr nicht irgendeine Lösung für mein Problem? Ich hab nämlich keine Ahnng voran das liegen könnte. Bitte um Hilfe.
|
Re: ProgressBar ohne sleep aber mit delay
Hallo,
die Lösung mit dem Timer von freak4fun ist doch ok. Ansonsten könntest du natürlich noch mit Threads arbeiten. Aber das ist für dieses kleine Problemchen wohl überdimensioniert. René |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 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