AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TDateTime/String frage beim zugriff

Ein Thema von Haegar · begonnen am 23. Apr 2003 · letzter Beitrag vom 24. Apr 2003
Antwort Antwort
Seite 1 von 2  1 2      
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#1

TDateTime/String frage beim zugriff

  Alt 23. Apr 2003, 11:38
so, da isser wieder...hier erstmal der code (der eigentlich interessante):
Delphi-Quellcode:
function TForm1.MyHoursBetween(ANow, AThen, ABefore: TDateTime): INT64;
begin
  Result := Trunc(24*Abs(AThen-ANow+ABefore));
end;

procedure TForm1.lbbtn_stoppClick(Sender: TObject);
begin
 timer.Enabled:=false;
 bisher:=dauer;
end;

procedure TForm1.timerTimer(Sender: TObject);
begin
 dauer := IntToStr(MyHoursBetween(Now,start,StrToTime(bisher)))
          +FormatDateTime('h "h" nn "min" ss "s"', Abs(start-Now));
 lbl_zeit.Caption:=dauer;
end;
so, das sollte der wichtige teil sein, das problem liegt in der varibalen bisher. wie ihr seht, muss ich ja auch den wert berücksichtigen den ich lade (bisher) den hab ich nu versucht einfach in die MyHoursBetween-Funktion einzubauen, naja gedacht getan...neues problem. wenn ich bisher als string behandle dann kommt im timer nach dem laden die fehlermeldung (z.B.) 46h 45min 12s is not a valid time...die kommt dann sekündlich (timer läuft weiter).
wenn ich nun bisher als TDateTime behandle, dann kommt (der code wurde natürlich verändert -> bisher:=StrToTime(dauer))
in diesem teil bei drücken auf stopp-button ne fehlermeldung die besagt, das der wert von dauer keine valid time ist, und dem zu folge net zugewiesen werden kann!

was nun?
gruss haegar
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#2
  Alt 23. Apr 2003, 12:55
Hi,

ganz einfach, du must deine Zeitangabe aus bisher in ein gültiges TDateTime-Format wandeln.

Aus 40h 30min 10sec wird 1Tag 16Stunden 30Minuten 10Sekunden.

Das wars schon.

Gruß oki
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#3
  Alt 23. Apr 2003, 13:10
aha hab ich mir ja auch schon gedacht, nur wie mache ich das
scheint ja nicht so einfach mit StrTotime zu gehen!

gruss haegar
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#4
  Alt 23. Apr 2003, 14:33
Hi,

sag mal wie du deinen Wert "bisher" bildest bevor du ihn ablegst um ihn dann wieder wie beschrieben einzulesen.

Du hast zwei Varianten.

1. Du legst den Wert schon im korrekten Format yy.mm.dd hh:mm:ss ab,

oder

2. Du merechnest vor der Verwendung "maluell" aus den angegebenen Stunden den komplementären Wert für yy.mm.dd. (also 24 Stunden = 1 Tag etc. etc.)

Gruß oki
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#5
  Alt 23. Apr 2003, 14:47
Zitat von oki:
sag mal wie du deinen Wert "bisher" bildest bevor du ihn ablegst um ihn dann wieder wie beschrieben einzulesen.
meinste das speichern??
Delphi-Quellcode:
procedure TForm1.LbSpeedButton2Click(Sender: TObject);
var datei:TextFile;
begin
 assignfile(datei,'info.txt');
 rewrite(datei);
 writeln(datei,dauer);
 closefile(datei);
end;
das mach ich ja so das laden is auch net anders, lese einfach den string aus der datei.....vorrausgesetzt ich behandle bisher als string, wie ich es nun mache.

gruss haegar
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#6
  Alt 23. Apr 2003, 15:00
Ja klar,

wie du das in die Datei bekommst meinte ich nicht. Wie bildest du den wert besher und wandelst ihn in einen String zum schreiben in die datei?.

Gruß oki
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#7
  Alt 23. Apr 2003, 15:04
tja also im formcreate wird er erstmal auf null gesetzt (bisher:='0') und wenn ich dann auf start drücke hat er auch nix dagegen, alles läuft wunderbar.
beim speichern (siehe oben) benutze ich ja bisher nicht, dazu nehm ich en wert von dauer!
bisher wird lediglich beim laden, stoppen beeinflusst! und beim laden is momentan eben das problem, das der string aus der datei nicht einfach mit StrToTime umzuwandeln is, damit es geht! weisste wie?

gruss haegar
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8
  Alt 23. Apr 2003, 15:16
Neeee!

setz doch einfach mal die Programmzeilen in den Thread wie du "bisher" in einen String wandelst.

Gruß oki
  Mit Zitat antworten Zitat
Haegar

Registriert seit: 10. Dez 2002
Ort: Peitz
319 Beiträge
 
Delphi 7 Professional
 
#9
  Alt 23. Apr 2003, 19:27
ganz einfachvar bisher:string;
ich behandel es zur zeit als string! nix umwandeln
konnt doch net wissen das du sowas einfaches meinst

gruss haegar
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#10
  Alt 24. Apr 2003, 09:01
Alles klar,

und wie bildest Du den Wert für besher?

Gruß oki
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz