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/)
-   -   Procressbar zählen (https://www.delphipraxis.net/39874-procressbar-zaehlen.html)

Knotti2015 8. Feb 2005 15:06


Procressbar zählen
 
Hallo ich suche einen Code für eine Procressbar diese soll nachdem auf einen Button geklickt wurde die Zeit abzählen welche sie aus einen Edit Feld ausließt ist das möglich udn wie leutet dann der Code?

Thorben86 8. Feb 2005 15:16

Re: Procressbar zählen
 
Also ich gehe mal davon aus, das du Delphi meinst.
Zum runterzählen kannst du doch einfach einen timer nehmen.

Dann schau dir bei der Progressbar die Eigenschaften Min,Max und Position an.

Knotti2015 8. Feb 2005 15:20

Re: Procressbar zählen
 
Kannst du das genau schreiben, ja meine Delphi, bin ein ziemlicher Noob.

So besser ?

CReber 8. Feb 2005 16:35

Re: Procressbar zählen
 
Zitat:

Hallo ich suche einen Code für eine Procressbar diese soll nachdem auf einen Button geklickt wurde die Zeit abzählen welche sie aus einen Edit Feld ausließt ist das möglich udn wie leutet dann der Code?
Vielleicht solltest du erstmal an deiner Formulierung arbeiten... Tipp: Kommasetzung ;) Das erleichtert das lesen ungemein :)

Wie mir scheint hast du wirklich noch gar keine Ahnung von Delphi. Ich möchte Dir ein paar Tipps geben ;) Zum ersten solltest du verstehen, was sich hinter den ganzen Ereignissen verbirgt. In deinem Fall bräuchtest du das Ereignis OnClick bei einem Button. In dem Moment musst du den Wert aus dem Editfeld auslesen.

Dann solltest du den Maximalbereich der ProgressBar einstellen. Der maximale Wert ist ja logischerweise deine Zahl aus dem Editfeld.

Jetzt benötigst du eine Delay-Routine (dazu steht genug hier im Forum). Diese wartet dann immer eine Sekunde und dann wird die ProgressBar um eins erhöht. Fertig bist du...

Delphi-Quellcode:
procedure Wait(Time : Integer);
.
.
.

procedure TForm1.Button1OnClick(Sender: TObject);
  var CountDown : Integer;
      i        : Integer;
begin
  CountDown := StrToInt(Edit1.Text);
  ProgressBar1.Max := CountDown;
  for i := 0 to CountDown do begin
    Wait(1000);
    ProgressBar1.Position := i;
  end;
end;

Knotti2015 8. Feb 2005 21:15

Re: Procressbar zählen
 
TForm.Wait ?? Fehler

Erzeugen
[Fehler] Unit1.pas(33): Ungenügende Forward- oder External-Deklaration: 'TForm1.Wait'
[Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

Nikolas 8. Feb 2005 21:49

Re: Procressbar zählen
 
Wait ist eine eigene Prozedur, die du selbst schreiben müsstest. Ich weiss nicht genau, was Christian damit wollte, ersetze es einfach durch 'sleep' das sollte den gleichen Effekt haben, nämlich einfach nach jedem Schritt kurz eine Pause einzulegen, also :
Delphi-Quellcode:
procedure TForm1.Button1OnClick(Sender: TObject);
  var CountDown : Integer;
      i        : Integer;
begin
  CountDown := StrToInt(Edit1.Text);
  ProgressBar1.Max := CountDown;
  ProgressBar1.Min := 0; // Sollte auch nicht fehlen.
  for i := 0 to CountDown do
    begin
    Sleep(1000);
    ProgressBar1.Position := i;
    end;
end;

DP-Maintenance 8. Feb 2005 22:16

DP-Maintenance
 
Dieses Thema wurde von "sakura" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.

Minz 9. Feb 2005 00:05

Re: Procressbar zählen
 
Als Alternative mit Timer


Delphi-Quellcode:
procedure TForm1.Button1OnClick(Sender: TObject);
begin
     Progressbar1.Position:=Progressbar1.Min;
     Progressbar1.Max:=strtoint(edit1.text);
     Timer1.enabled:=true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
     if Progressbar1.Position<Progressbar1.Max then Progressbar1.StepIt
     else enabled:=false;
end;

Knotti2015 9. Feb 2005 09:14

Re: Procressbar zählen
 
Es geht ja um die procedur Wait ... wenn ich es da durch sleep ersetzte bekome ich den selben fehler udn mit timer geht es nicht das fänst schon ohne buttonkloick an zu zählen.

fkerber 9. Feb 2005 09:20

Re: Procressbar zählen
 
Hi!

Du kannst einfach den leeren Prozedurkopf löschen, dann gibt es keine Probleme mehr damit.

Allerdings ist es besser DelayDelay zu verwenden.


Ciao Frederic


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 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