![]() |
Re: Sekunden an einen Timer übergeben
hmm, bei den eingabewerten hab ich auch einen fehler...moment
nein, ich will einfach das der timer nicht OnEdit3Change aktiviert wird sondern wenn der user aufn button klickt... ahh, hier:
Delphi-Quellcode:
du musst das noch reintuen:
vorhanden:= strtofloat(Edit1.Text);
prostunde:= strtofloat(Edit2.Text); benoetigt:= strtofloat(Edit3.Text); dec(zeitsekunden);//runterzählen fehlend:= benoetigt - vorhanden; zeitstunden:= fehlend / prostunde; zeitsekunden:= round(zeitstunden * 3600);//und dann wieder auf festen wert setzen
Delphi-Quellcode:
nee, klappt auch nicht...
vorhanden:=vorhanden+round((zeitsekundenold-zeitsekunden)*prostunde/3600);
argghhh!!! erst decrementierst du die zeitsekunden und dann sagst du
Delphi-Quellcode:
ich mach das mal neu...
h:= zeitsekunden div (60 * 60);
zeitsekunden:= zeitsekunden - h*60*60; m:= zeitsekunden div 60; zeitsekunden:= zeitsekunden - m*60; s:= zeitsekunden; |
Re: Sekunden an einen Timer übergeben
also, ich hab das mal etwas anders gelöst, nebenbei noch ne fehler-abfrage gemacht, es sollte jetzt klappen:
Delphi-Quellcode:
und ich versteh immer noch nicht was das prog macht... :(
var
Form1: TForm1;//erst mal hab ich deine globalen variablen gelichtet vorhanden, prostunde, benoetigt:double; laufzeit:integer; implementation {$R *.dfm} procedure TForm1.Timer1Timer(Sender: TObject); var h, m, s, sekunden:integer; fehlend:double; //dafür lokale... begin inc(laufzeit); //wie lange läuft es schon? vorhanden:=laufzeit*prostunde/3600; //wieviel is nach der zeit da fehlend:=benoetigt-vorhanden; //wieviel fehlt dann noch sekunden:=round((fehlend)/prostunde*3600);//soviel zeit fehlt noch h:= sekunden div (60 * 60); //deine berechnung sekunden:= sekunden - h*60*60; m:= sekunden div 60; sekunden:= sekunden - m*60; s:= sekunden; Edit4.Text:= 'h: '+inttostr(h)+' min: '+inttostr(m)+' sec: '+inttostr(s); end; procedure TForm1.Button1Click(Sender: TObject); begin //auf buttonklick try vorhanden:= strtofloat(Edit1.Text); //einlesen prostunde:= strtofloat(Edit2.Text); benoetigt:= strtofloat(Edit3.Text); Timer1.Enabled:=true; //timer enablen except //wenns fehler gibt (zahl flsch drin oder so) Application.MessageBox('Da Stimmt aber eine Zahl nicht...','Oops...'); end; end; |
Re: Sekunden an einen Timer übergeben
folge diesem Link und melde dich an, dann verstehst du was los ist!
![]() wenn dir das Spiel spaß macht komm zur BUC! wir sind zwar klein, aber wir spielen nur aus Spaß an der Freunde. Das Programm erleichtert dort die Planung der Baueinsätze! schwer zu erklären....probier es einfach aus! vielen vielen Dank nochmal! tavik |
Re: Sekunden an einen Timer übergeben
Hai Tavik,
auch wenn es mir nicht gesagt wird sehe ich das so das Du einen Countdown anzeigen möchtest? Warum dafür nicht mit der Systemzeit arbeiten? Hier mal mein Ansatz. Er benötigt: 1 x Timer 1 x Button 3 x Edit 2 x Label
Delphi-Quellcode:
var
stunden : Integer; minuten : Integer; sekunden : Integer; startzeit : TTime; countdown : TTime; procedure TForm1.FormCreate(Sender: TObject); begin Timer1.Enabled := False; Timer1.Interval := 25; end; procedure TForm1.Button1Click(Sender: TObject); begin stunden := StrToInt (Edit1.Text); minuten := StrToInt (Edit2.Text); sekunden := StrToInt (Edit3.Text); countdown := EncodeTime (stunden,minuten,sekunden,0); startzeit := Now; Timer1.Enabled := True; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label1.Caption := TimeToStr (now); // Echzeit Label2.Caption := TimeToStr (countdown - (now-startzeit)); // Mein Countdown end; |
Re: Sekunden an einen Timer übergeben
Liste der Anhänge anzeigen (Anzahl: 1)
hi glkbkk
leider haben deine veränderungen auch einen nachteil! die variable benötigt hat keinen einfluss mehr auf den timer! er zählt nur runter wie lange gebraucht wird um die rohstoffe zusammenzusparen wenn nix da ist! gib mal ein: vorhanden: 30 pro stunde: 60 benoetigt: 30 der timer sollte jetzt null anzeigen! da ich genügend rohstoffe zusammenhab, aber leider fängt er bei einer halben stunde an! hast du vielleicht die rettende idee? gruss sascha |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 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