AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Progressbar Wert geben

Ein Thema von Affemitwaffe93 · begonnen am 4. Jan 2009 · letzter Beitrag vom 4. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Affemitwaffe93

Registriert seit: 17. Okt 2008
40 Beiträge
 
Delphi 2005 Personal
 
#1

Progressbar Wert geben

  Alt 4. Jan 2009, 10:55
Hallo Leute,

also ich habe folgendes Problem:

Ich habe in meinem Projekt 2 Formulare. Jetzt will ich das ein beliebiger Wert den Man in ein Edit eingibt, als Maximum für die Progressbar dient.

Das Ganze sieht dann so aus bei mir:

1. Form:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
zahl1:= strtoint (edit1.text);
form2.Button1.enabled:=true;
form2.Timer1.enabled:=true;
form2.Timer2.Enabled:=true;
form2.ProgressBar1.Enabled:=true;
form2.Label1.Enabled:=true;
end;

end.
und in der 2. Form:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
progressbar1.Min:=0;
progressbar1.Max:= (Zahl1) ;
progressbar1.Position:=0;
progressbar1.step:= +1;
end;

end.
ich weiß schon das der Wert in die 2. Form übergeben wird da ich das mit einem Button der dann diesen Wert anzeigt überprüft habe, allerdings tut sich an der Progressbar im Moment gar nicht. Wenn ich allerdings das (Zahl1) wieder durch eine normale Zahl ersetze, dann funktioniert alles Perfekt.
  Mit Zitat antworten Zitat
Klaus01

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

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:01
Guten Morgen,

erstellst Du die Form2 den immer dynamisch wenn Du zahl1 geändert hast?
Der create Prozeß einer Form wird nur dann durchlaufen wenn sie erstellt wird.
Wenn Form2 also statisch eingebunden ist, wird onCreate einmal ausgeführt.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:04
Hallo,

du weisst die verkehrte Variable der ProgressBar zu.
In der Form1 beschreibst du eine Variable "zahl1" der Form1, in der Form2 fragst du aber die Variable "zahl1" der Form2 ab.
Zwischen diesen zwei Variablen besteht keine Verbindung!

Du brauchst die Variable "zahl1" in der Form2 aber gar nicht.
Mach einfach folgendes:
Zitat von Affemitwaffe93:
1. Form:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
zahl1:= strtoint (edit1.text);
form2.Button1.enabled:=true;
form2.Timer1.enabled:=true;
form2.Timer2.Enabled:=true;
form2.ProgressBar1.Enabled:=true;
form2.ProgressBar1.Max := zahl1; //<== NEU
form2.Label1.Enabled:=true;
end;

end.
und in der 2. Form:

Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
progressbar1.Min:=0;
//progressbar1.Max:= (Zahl1) ; //musst du weglassen
progressbar1.Position:=0;
progressbar1.step:= +1;
end;

end.
Un um dem Verständnis halber:
Form OnCreate wird nur beim Erzeugen der Form durchlaufen. Das würde jetzt in deinem Fall bedeuten, dass der Wert der Variable "zahl1" der Form2 nur einmal der Progressbar zugewiesen werden würde.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:06
Packe das ganze mal in OnShow rein. dann wirds auch nur ausgeführt wenn deine Form angezeigt wird und nicht nur dann wenn sie erzeugt wird (also dann wenn zahl1 noch = nil ist).
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:08
Zitat von Teekeks:
Packe das ganze mal in OnShow rein. dann wirds auch nur ausgeführt wenn deine Form angezeigt wird und nicht nur dann wenn sie erzeugt wird (also dann wenn zahl1 noch = nil ist).
Das bringt auch nichts, da die zwei Variablen keine Verbindung zueinander haben (wenn die Variablen jeweils in der jeweiligen Form deklariert sind)
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#6

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:10
ach stimt ja. hab ich garnicht gesehen das da bei Form2 "zahl1" und nicht "Form1.zahl1" steht. In dem falle hast du tatsächlich recht ^^
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:13
Hai Waffen Affe

ich würde das ganze über ein eigens Property von TForm2 lösen. Zum Beispiel so:

Delphi-Quellcode:
type
  TForm2 = class(TForm)
    ProgressBar1: TProgressBar;
    Timer1: TTimer;
    procedure Timer1Timer(Sender: TObject);
  private
    { Private-Deklarationen }
    fprogessmax: Integer;
    procedure SetProgressmax(const Value: Integer);
  public
    { Public-Deklarationen }
    property progessmax: Integer read fprogessmax write SetProgressmax;
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.SetProgressmax(const Value: Integer);
begin
  fprogessmax := Value;
  ProgressBar1.Max := fprogessmax;
end;

procedure TForm2.Timer1Timer(Sender: TObject);
begin
  ProgressBar1.Position := ProgressBar1.Position + 1;
end;
Delphi-Quellcode:
procedure TForm1.btn_1Click(Sender: TObject);
begin
  Form2.Show;
  Form2.progessmax := strtoint(edt1.text);
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Affemitwaffe93

Registriert seit: 17. Okt 2008
40 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:16
also jetzt erst mal danke an alle die schnellen antworten ^^

ich hab das jetzt mal so gemacht wie Helmi gesagt hat weil das am wenigsten bei mir auslößt , das sieht jetzt so aus:

Delphi-Quellcode:
var
  Form1: TForm1;
  Zahl1: Integer;
  Zahl2: Integer;


implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
form2.show;
zahl1:= strtoint (edit1.text);
form2.Button1.enabled:=true;
form2.Timer1.enabled:=true;
form2.Timer2.Enabled:=true;
form2.ProgressBar1.Enabled:=true;
form2.Label1.Enabled:=true;

form2.progressbar1.Max:= zahl1 ;
end;
das funktioniert aber auch irgendwie nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:16
Die DP-Hai (Sharky) Lösung wär natürlich noch schöner und proffesioneller....
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Progressbar Wert geben

  Alt 4. Jan 2009, 11:17
Zitat von Affemitwaffe93:
das funktioniert aber auch irgendwie nicht.
wie wirkt sich das aus?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  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 04:48 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