Naja was gibts bei der Beschreibung des TE's noch groß zu interpretieren:
Zitat:
Beispiel: Nutzer gibt in edit1 '1' Stunde ein, edit2 '60' Minuten wird automatisch gerechnet und edit3 '3600' sekunden wird automatisch gerechnet.
(Was aber auch sein muss ist das wenn der nutzer '3600' Sekunden eingibt das der rechner dann die anderen 2 edit felder befüllt.)
Das dies nun nicht Sinnvoll ist (da im
Prinzip der Wert von Edit1 = Edit2 = Edit3), ist eine andere Sache.
Ich gehe davon aus:
Edit1 umbenennen in StundenE , ggf. einstellen, das nur Zahlen eingegeben werden können (NumbersOnly = True)
Edit2 umbenennen in MinutenE , ggf. einstellen, das nur Zahlen eingegeben werden können (NumbersOnly = True)
Edit3 umbenennen in SekundenE, ggf. einstellen, das nur Zahlen eingegeben werden können (NumbersOnly = True)
Die Summe aller Editfelder ergibt die GESAMTZEIT, nicht wie der TE angegeben hat überall die Gleiche Zeit.
Also bei Eingabe 3600 Sekunden Stünde nur eine "1" bei Stunde, der Rest wäre 0.
Für alle die Gleiche Funktion beim OnExit hinterlegen (geht sicher auch kürzer/einfacher ist aber evtl. für einen Anfänger am leichtesten zu verstehen):
Delphi-Quellcode:
var
iSekunden, iMinuten, iStunden : Integer;
begin
iSekunden := 0;
iMinuten := 0;
iStunden := 0;
case Sender.Name of
SekundenE : iSekunden := strtoint(SekundenE.Text); //Hilfsvariable aus Editfeld füllen
MinutenE : iMinuten := strtoint(MinutenE.Text); //Hilfsvariable aus Editfeld füllen
StundenE : iStunden := strtoint(StundenE.Text); //Hilfsvariable aus Editfeld füllen
else : Exit;
end;
if iSekunden > 59 then //Da 60 Sekunden = 1 Minute, dies umrechnen
begin
iMinuten := iMinuten + (iSekunden DIV 60); //die Minuten, die sich aus den Sekunden ergeben hinzuaddieren
iSekunden := iSekunden MOD 60; //die korrekten Sekunden berechnen
end;
if iMinuten > 59 then
begin
iStunden := iStunden + (iMinuten DIV 60); //die Stunden, die sich aus den Minuten ergeben hinzuaddieren
iMinuten := iMinuten MOD 60; //die korrekten Minuten berechnen
end;
SekundenE.Text := inttostr(iSekunden); //Hilfsvariablen ins Editfeld zurückspielen
MinutenE.Text := inttostr(iMinuten); //Hilfsvariablen ins Editfeld zurückspielen
StundenE.Text := inttostr(iStunden); //Hilfsvariablen ins Editfeld zurückspielen
iSecGes := (strtoint(StundenE.Text) * 60 + strtoint(MinutenE.Text)) * 60 + strtoint(SekundenE.Text); //Gesamtsekunden (Globale Variable)
end;
Achtung ungetestet. Programmiert in der Theorie^^