also, ich hab das mal etwas anders gelöst, nebenbei noch ne fehler-abfrage gemacht, es sollte jetzt klappen:
Delphi-Quellcode:
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;
und ich versteh immer noch nicht was das prog macht...