![]() |
Label.Caption mit/durch ProgressBar ändern?!?
also habe momentan folgendes problem.
ich will das wenn ich eine ProgressBar zum laufen bring durch einen button click das sich ein label nach jeder runde mitverändert. die progressbar bring ich mit einem timer zum laufen. ich zeig euch ma wie ich es bis jetzt probiert habe (habs schon mehrmals und unterschiedlich probiert, allerdings funktioniert das fast am besten)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin Timer1.Enabled:=True; end;
Delphi-Quellcode:
habs in diesem fall enfach mal so gemacht, das die progressbar max. 60 und min.0 hat.
procedure TForm1.Timer1Timer(Sender: TObject);
var b: Integer; begin b:=1; ProgressBar1.StepBy(1); application.ProcessMessages; label3.Caption:= label3.Caption +IntToStr(b); end; durch den timer wird die Progressbar aktiviert mit einser schritten. label3.caption sollte eigentlich dann von (sekunde) 0 bis 60 hochlaufen. stattdessen siht label3.caption so aus (nach jeder runde): 1 11 111 1111 ... also es wird nicht 1+1 gerechnet sondern einfach eine 1dazu getan. bräuchte halt einfach eine lösung dafür? vllt. ein commando zum addieren? (falls das basis kenntnise sind, dann habe ich vergessen wie man addiert, also mit einem commando). danke falls ihr helfen könnt. |
Re: Label.Caption mit/durch ProgressBar ändern?!?
Delphi-Quellcode:
Grüße
procedure TForm1.Timer1Timer(Sender: TObject);
var b: Integer; // das dann auch weg begin b:=1; // solltest Du ausserhalb des Timer auf 1 setzen ProgressBar1.StepBy(1); application.ProcessMessages; inc(b) label3.Caption:= IntToStr(b); end; Klaus |
Re: Label.Caption mit/durch ProgressBar ändern?!?
du mußt nur Label.Caption vorher in einen Integer umwandeln (TryStrToInt oder StrToIntDef), dann 1 dazurechnen und per IntToStr wieder in einen Integer umwandeln.
Du könntest auch (falls nur bis 60/59 gezählt werden soll) ProgressBar1.Position in einen String umwandeln und anzeigen. PS: 0 bis 60 = 61 Sekunden 0 bis 59 = 60 Sekunden :zwinker: |
Re: Label.Caption mit/durch ProgressBar ändern?!?
Oder ohne die Variable b würde es auch so gehen
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
begin ProgressBar1.StepBy(1); application.ProcessMessages; inc(b) label3.Caption:= IntToStr(StrToInt(Label3.Caption)+1); // Vorsicht das ist ein Pseudo Code (Fehler vorbehalten) :-D [Edit] Sorry hat himitsu auch gleichzeitig geschrieben (seltsam kam gar keine Melung über "neuer Beitrag hinzugekommen" [/EDIT] |
Re: Label.Caption mit/durch ProgressBar ändern?!?
@Mikender:
StrToInt und im Label keine Zahl = Exception @[Edit] tja, bei mir kam eine, nur wurde kein neuer Beitrag (der von Klaus01) angezeigt :? |
Re: Label.Caption mit/durch ProgressBar ändern?!?
[OT]Tja wieder ein Mysterium in der DP :gruebel: :-D [/OT]
Und die Exception kannst du ja mit Try...except oder if...then abfangen |
Re: Label.Caption mit/durch ProgressBar ändern?!?
Zitat:
Delphi-Quellcode:
Label3.Tag := Label3.Tag + 1;
label3.Caption:= IntToStr(Label3.Tag); |
Re: Label.Caption mit/durch ProgressBar ändern?!?
ok danke erstmal.
mikender's methode funktioniert, allerdings kommt halt ne exeption wenn keine zahl(integer) drin steht, allerdings kann ich des so machen: das in den einstellunge Caption= 0 ist und Visible=False. in der procedure stell ich dann erst visible= true ein und alles startet. @ toms: funktioniert perfekt auch ohne integer in der caption. ich weiß zwar eigenltih net was tag heist, also wofür des genutzt wird, aba es geht. thx |
Re: Label.Caption mit/durch ProgressBar ändern?!?
Zitat:
|
Re: Label.Caption mit/durch ProgressBar ändern?!?
Tag hat keine Funktion und es ist für den Programmierer vorgesehn, also du selbst kannst entscheiden, was damit gemacht wird. (nahezu alle Delpi-VCL-Komponenten haben dieses Property)
Zitat:
[edit] war mkinzler schonwieder zu schnell :shock: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 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