Autor Beitrag
Anub!s
Hält's aus hier
Beiträge: 7

Win 2000 Prof, Win XP Prof
D6 Prof
BeitragVerfasst: Mi 30.06.04 09:18 
Aloha zusammen :)

Ich hoffe, mein Beitrag ist hier nicht total im falschen Forum, bin ziemlicher Delphi-Newbie :oops:

Ich lese mit meinem Query einige Daten aus, davon auch eine bestimmte Zeit im Format hh:mm:ss. Ich habe einen Integer, der eine bestimmte Anzahl Sekunden angibt. Nun muss ich diese Sekunden zu meiner Zeitbasis dazuaddieren. Wie ist das möglich? Mit der formatdatetime-Funktion vielleicht?

Hier ein kleines Fall-Beispiel, damit ihr es euch besser vorstellen könnt (trifft nicht haargenau auf meinen Fall zu)

Wir haben eine Playlist mit einigen Songs. Geliefert werden uns die Startzeit der Playlist (15:00:00) und die Länge der einzelnen Songs. Jetzt muss ich herausfinden, wann denn genau ein bestimmter Song anfängt?

Danke für eure Ideen :wink:

_________________
Liebe Grüsse,
Simon
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 30.06.04 09:28 
Hallo

tdatetime ist ein double wert: vor dem komma die tage, hinterm Komma die Tageszeit
also 1/(24*60*60) ist dann eine Sekunde, die du drauf addierst.

oder du verwendest incsecond (unit dateutils), einfach mal in der Onlinehilfe nachschlagen

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Anub!s Threadstarter
Hält's aus hier
Beiträge: 7

Win 2000 Prof, Win XP Prof
D6 Prof
BeitragVerfasst: Mi 30.06.04 09:53 
Danke für deinen Tipp, Frank...habe jetzt mal was zusammengebastelt:

ausblenden Quelltext
1:
aktuell:=DataSt.Q_EP.FieldByName('blo_startzeit').AsDateTime + (time_elapsed * (1/(24*60*60)));					


Meine Idee: Startzeit des Blocks (blo_startzeit) addiert mit der Anzahl bisher gespielter Sekunden insgesamt * 1 Sekunde

Der Wert aus dem String "aktuell" wird später noch in ein Textfile geschrieben.

time_elapsed wurde als Integer vereinbart...als tDateTime habe ich es auch schon versucht. Folgende Fehlermeldung erscheint:

Inkompatible Typen 'String' und 'Extended'

_________________
Liebe Grüsse,
Simon
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 30.06.04 10:13 
mit DB-geschichten kenn ich mich nicht aus,

von welchem Typ ist aktuell? wenns ein string ist mußt du den ausdruck datast...+timeelapsed... auch in einen wandeln (datetostr(datast....+timeelapsed...)

Mfg Frank

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Anub!s Threadstarter
Hält's aus hier
Beiträge: 7

Win 2000 Prof, Win XP Prof
D6 Prof
BeitragVerfasst: Mi 30.06.04 10:56 
@ Frank:

ausblenden Quelltext
1:
aktuell:=DatetoStr(DataSt.Q_EP.FieldByName('blo_planzeit').AsDateTime + (time_elapsed * (1/(24*60*60))));					


gibt mir "30.12.1899" zurück...meine Sekunden werden gar nicht erst angezeigt...
Siehst du vielleicht den Fehler in meiner Formel?

_________________
Liebe Grüsse,
Simon
Keldorn
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: Mi 30.06.04 11:58 
nimm timetostr , mein fehler :oops:

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Anub!s Threadstarter
Hält's aus hier
Beiträge: 7

Win 2000 Prof, Win XP Prof
D6 Prof
BeitragVerfasst: Mi 30.06.04 13:27 
Perfekt, vielen, herzlichen Dank für deine schnelle Hilfe :)

_________________
Liebe Grüsse,
Simon