AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi ProgressBar ohne sleep aber mit delay
Thema durchsuchen
Ansicht
Themen-Optionen

ProgressBar ohne sleep aber mit delay

Ein Thema von Faceman · begonnen am 24. Mai 2006 · letzter Beitrag vom 24. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Faceman

Registriert seit: 20. Mai 2006
22 Beiträge
 
#1

ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 09:32
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:
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;
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?
  Mit Zitat antworten Zitat
mbamler

Registriert seit: 19. Mai 2005
Ort: Hamburg
118 Beiträge
 
Delphi 7 Architect
 
#2

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 09:36
Zitat von Faceman:
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:
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;
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?

[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
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 09:37
schau mal nach delay in der codelib, das macht das was Du willst.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
mbamler

Registriert seit: 19. Mai 2005
Ort: Hamburg
118 Beiträge
 
Delphi 7 Architect
 
#4

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 09:41
Zitat von Faceman:
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:
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;
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?
Sorry ...
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
  Mit Zitat antworten Zitat
Faceman

Registriert seit: 20. Mai 2006
22 Beiträge
 
#5

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 09:43
Danke erstmal, werde es gleich ma ausprobieren, melde mich vielleicht später nochmal wenn es geklappt hat.
  Mit Zitat antworten Zitat
Faceman

Registriert seit: 20. Mai 2006
22 Beiträge
 
#6

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 11:56
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:
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;
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?
  Mit Zitat antworten Zitat
Faceman

Registriert seit: 20. Mai 2006
22 Beiträge
 
#7

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 12:03
Kann mir keiner dabei helfen?
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 12:05
Auch wenn es nicht ganz zum Thema passt:

Delphi-Quellcode:
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;
[edit]
Hab dann doch noch was zum Thema xD.

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
timer4.Enabled:=true;
end;
Wird beim starten des Programms ausgeführt. Du solltest das Timer4.Activate; im OnShow-Event des 2. Formulars machen.

[/edit]

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Faceman

Registriert seit: 20. Mai 2006
22 Beiträge
 
#9

ProgressBAr mit timer und zwei Formularen

  Alt 24. Mai 2006, 13:09
Habt ihr nicht irgendeine Lösung für mein Problem? Ich hab nämlich keine Ahnng voran das liegen könnte. Bitte um Hilfe.
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#10

Re: ProgressBar ohne sleep aber mit delay

  Alt 24. Mai 2006, 13:37
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é
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.
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