![]() |
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?
|
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. |
Re: Procressbar zählen
Kannst du das genau schreiben, ja meine Delphi, bin ein ziemlicher Noob.
So besser ? |
Re: Procressbar zählen
Zitat:
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; |
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 |
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
Dieses Thema wurde von "sakura" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
|
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; |
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.
|
Re: Procressbar zählen
Hi!
Du kannst einfach den leeren Prozedurkopf löschen, dann gibt es keine Probleme mehr damit. Allerdings ist es besser ![]() Ciao Frederic |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:30 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