Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fehler?? Datum1:=strtodatetime('01/01/2001 23:01'); (https://www.delphipraxis.net/474-fehler-datum1-%3Dstrtodatetime-01-01-2001-23-01-%3B.html)

Frankle 26. Jul 2002 17:35


Fehler?? Datum1:=strtodatetime('01/01/2001 23:01');
 
Hallo!
Datum1 ist vom Typ TDateTime. Nun möchte ich eine bestimmte Zeit und ein bestimmtes Datum zuweisen. In der Hilfe steht, man soll dies nach dem System machen:
Datum1:=strtodatetime('01/01/2001 23:01');
Geht abba net *hoil
Was ist falsch?

Daniel B 26. Jul 2002 17:44

Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  Datum1: TDateTime;
begin
  Datum1 := StrToDateTime('01/01/2001 23:01');
  ShowMessage(DateTimeToStr(Datum1));
end;
Kann ich Kompilieren.
Wenn ich das SM weglass, dann kommt nur die Warnung dass Datum1 nie benutzt wird.

Was ist das Problem? Fehlermeldung? Mehr Infos Bitte!

Daniel 26. Jul 2002 17:48

Hehe .. wahrscheinlich liegt es an den Variablen, die in Delphi steuern, wie ein gültiges Datum auszusehen hat. Denn die Delphi-Hilfe schreibt weiter:
Zitat:

Zitat von Delphi-Hilfe
Note:


Frankle 26. Jul 2002 17:49

compilieren
 
Hi!
Danke für deine schnelle Hilfe ;)
Kompilieren kann ich auch noch. Aber wenn ich auf den Button klick, bekomm ich ne EConvertError kein Gültiger Datum-Zeit-Wert (frei nach mia).
Muss ich vielleicht irgendwas mit Format machen??

Frankle 26. Jul 2002 17:51

delphi5
 
Hi!
Ich hab Delphi5! Kannst du mir konkret sagen...wie ich das hinbekomm? Dankö

Daniel B 26. Jul 2002 17:53

Hmm... Ich nicht das Prog starten, sondern nur Kompilieren weil bei mir das Windows kaputt ist.
Willst du die Systemzeit ändern?

Frankle 26. Jul 2002 17:55

Nee
 
Nein. Ich will einen Countdown basteln. Die Funktion hab ich schon. Die benötigt abba nen TDateTime. Sagt euch:
{ StrToDate converts the given string to a date value. The string must
consist of two or three numbers, separated by the character defined by
the DateSeparator global variable. The order for month, day, and year is
determined by the ShortDateFormat global variable--possible combinations
are m/d/y, d/m/y, and y/m/d. If the string contains only two numbers, it
is interpreted as a date (m/d or d/m) in the current year. Year values
between 0 and 99 are assumed to be in the current century. If the given
string does not contain a valid date, an EConvertError exception is
raised. } Quelle: Sysutils


was?

Daniel B 26. Jul 2002 17:57

Probier mal das Jahr in der Zukunft zu wählen. Vielleicht mag es nicht weil das Datum bereits vorbei ist und nicht bis dahin Zählen kann.

Frankle 26. Jul 2002 18:00

Ich bekomm den gleichen Fehler wieder ;(

Christian Seehase 27. Jul 2002 02:03

Moin Frankle,

im Prinzip hat Daniel die Lösung schon gegeben:

Code:
Datum1 := StrToDateTime('01'+DateSeparator+'01'+DateSeparator+'2001 23'+TimeSeparator+'01');
Das Datum kann nur dann von StrToDateTime konvertiert werden, wenn Du auch das richtige Trennzeichen verwendest.
Um dies unabhängig von dem System zu machen, auf dem das Programm läuft, nimmst Du einfach die vordefinierten Variablen.
Das führt erst dann zu einem Fehler, falls jemand, nachdem das Programm gestartet wurde, die Systemeinstellungen für die Trennzeichen verändert.
Diese Variablen werden beim Initialisieren der Unit SysUtils mit Werten gefüllt, also je Programmstart einmal.
Diesen, wohl höchst seltenen Fehlerfall kannst Du dann nur noch umgehen, wenn Du jeweils, bevor Du die Trennzeichen verwendest, diese selber ausliest.
Ich denke aber, dass Du Dir diese Mühe wirklich sparen kannst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:38 Uhr.
Seite 1 von 2  1 2      

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