Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Berechnete Zeit in TDateTime umrechnen?


LuGo - Do 04.02.10 10:02
Titel: Berechnete Zeit in TDateTime umrechnen?
Hallo,

ich habe folgendes Problem bzw. möchte folgendes Probieren:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var Geschwindigkeit, Strecke: Real;
Fahrtzeit: TDateTime;

procedure TFeuerwehrfahrzeug.Fahren;
begin                     //Hier probiere ich, die Zeit für die Strecke zu berechnen
Geschwindigkeit:=IntToFloat
Strecke := IntToFloat
Fahrtzeit := Geschwindigkeit div Strecke;

Ich möchte die Fahrtzeit zuerst als Real-Typ berechnen, möchte aber gleichzeitig TDateTime haben, damit die Zahl heruntergezählt werden kann.

MfG
LuGo


Xentar - Do 04.02.10 10:30

- TDateTime ist nen Real (Gleitkommawert)
- Mit div ist das Ergebnis niemals ein Real
- Strecke := IntToFloat ich bezweifel, dass das durch den Compiler geht
- Angenommen, Geschwindigkeit und Strecke sind gleich. Dann ist das Ergebnis 1, weil das Auto eine Stunde fährt. Teile das durch 24, und schon hast du einen TDateTime Wert.


LuGo - Do 04.02.10 10:51

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
- Mit div ist das Ergebnis niemals ein Real

War ein Fehler von mir, war nicht klar ob es real oder integer sein soll.

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
- Strecke := IntToFloat ich bezweifel, dass das durch den Compiler geht.

Was soll ich denn anstelle machen. Habe jetzt zwei Variablen eine Geschwindigkeit (Integer) und eine Geschwindigkeit1 (Real).

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
- Angenommen, Geschwindigkeit und Strecke sind gleich. Dann ist das Ergebnis 1, weil das Auto eine Stunde fährt. Teile das durch 24, und schon hast du einen TDateTime Wert.

Heißt das ich muss das Ergebnis anschließend durch 24 teilen und schon habe ich einen Wert von TDataTime. Ich möchte aber nur Minuten und Sekunden haben, durch was muss ich dann teilen?


Danf - Do 04.02.10 11:55

user profile iconXentar hat folgendes geschrieben Zum zitierten Posting springen:
- Strecke := IntToFloat ich bezweifel, dass das durch den Compiler geht.

Was soll ich denn anstelle machen. Habe jetzt zwei Variablen eine Geschwindigkeit (Integer) und eine Geschwindigkeit1 (Real).

_______________________________________________________________________________________

Evtl


Delphi-Quelltext
1:
Strecke := strtofloat(edxxx.text);                    



Delphi-Quelltext
1:
Strecke := strtoint(edxxx.text);                    



Edit: Irgendwie wollte die quote funktion nicht ;)


LuGo - Do 04.02.10 12:32

Ich möchte keine String sondern eine Real-Variable verarbeiten.
Kann ich das dann so machen?


Delphi-Quelltext
1:
Geschwindigkeit1 := IntToFloat(Geschwindigkeit);                    


Oder wäre es einfach so möglich?


Delphi-Quelltext
1:
2:
3:
4:
Var Geschwindigkeit: Integer;
    Fahrtzeit, Strecke, Geschwindigkeit1: Real;
//Lösung Problem// Geschwindigkeit1 := Geschwindigkeit
Fahrtzeit := Strecke/Geschwindigkeit


Antwort gefunden!

Jetzt sind noch 2 Fragen übrig.


LuGo - Fr 05.02.10 10:18

Wie bekomme ich das jetzt mit dem Zeit runterzählen? Mit dem TTimer und dann die Intervalle auf 1000 setzen und dann: if Fahrzeit = 0 then irgendwas?

MfG

LuGo


Xentar - Fr 05.02.10 11:34

user profile iconLuGo hat folgendes geschrieben Zum zitierten Posting springen:
Wie bekomme ich das jetzt mit dem Zeit runterzählen? Mit dem TTimer und dann die Intervalle auf 1000 setzen und dann: if Fahrzeit = 0 then irgendwas?

Ja.

Aber da das mit dem ursprünglichen Problem nicht mehr viel zu tun hat, mach bitte ein neues Thema auf.