Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - StrToDate für mehrere Spracheinstellunegen?


barana - Mi 11.04.07 19:48
Titel: StrToDate für mehrere Spracheinstellunegen?
Ist es eigentlich möglich, die StrToDate Funktion so zu automatisieren, dass sie mehrere Farmate gleichzeitig umwandeln kann?

Also so, dass sie sowohl den US Standart 'dd/mm/yyyy' als auch unseren Standart erkennt 'dd.mm.yyyy'?

Danke im Voraus


ZeitGeist87 - Mi 11.04.07 19:49

Hallo!

Soweit ich weiß, geht das nach den Systemeinstellungen!

Aber du kannst dir gern ne eigene Funktion schreiben :)

LG
Stefan


barana - Sa 14.04.07 18:02

Hmm,
ich hab es nun anders gelöst.

Ich gehe enfach bei jedem Start des Programmes in die Registry und ändere die Formateinträge. Danach setze ich sie wider zurück...


jaenicke - Sa 14.04.07 18:44

:shock: Dafür hat Delphi eigene Variablen!! Du musst nur die ändern und nix in der Registry pfuschen...
DateSeparator z.B. für den Punkt oder so zwischen Tag, Monat und Jahr, und so weiter...


barana - Sa 14.04.07 19:01

Ja, aber dass kann ich nur machen, wenn ich weis welches Datumsformat auf den Rechner zur Zeit ist.

So lässt sich das schön Universel lösen. Zumindest für meine Zwecke...


jaenicke - Mo 16.04.07 00:03

Hmm, ich weiß zwar nicht, wo der Unterschied ist, ob du das Format in der Registry änderst oder ausliest oder die dafür definierten Formatangaben in Delphi nutzt (die ja auch wieder zunächst die System-Werte haben), aber naja...

Vielleicht hab ich das auch falsch verstanden mit der Registry. Ich dachte, dass du da einfach nur ausliest oder reinschreibst, welches Trennzeichen zwischen Tag, Monat und Jahr steht und so weiter.
Und genau das macht man ja mit den Variablen, nur dass es, wenn man die setzt nur für das Programm gilt und nicht systemweit. Denn das Problem ist ja, dass die Anzeige, wenn du sie in der Registry änderst überall gilt, auch z.B. im Windows Explorer, etc.

Aber Hauptsache es funktioniert, und solange das Programm nur für den Eigengebrauch ist, ist es ja auch egal. Nicht benutzen darf man sowas ja nur nicht, wenn man das Programm weitergeben will. (Was, wenn das Programm vor dem Zurücksetzen abstürzt... ;-))


alzaimar - Mo 16.04.07 07:10

Ich würde in meiner Init-Routine einfach nur die in SysUtils definierten Format-Variablen ShortDateString, Datesparator, Listseparator etc. also kurz gesagt, die ganzen sprachabhängigen Formateinträge, setzen. Nix Registry. Denn was passiert, wenn die Applikation keine Schreibrechte auf die Registry besitzt?