Entwickler-Ecke
Sonstiges (Delphi) - 6-stellige Zahl in Datum (mit Punkten) konvertieren...
kiwicht - Di 28.01.03 18:13
Titel: 6-stellige Zahl in Datum (mit Punkten) konvertieren...
Hallo zusammen..
ich will meinen Anwendern die Datums-Eingabe etwas vereinfachen und deshalb ermöglichen, anstatt das Datum in folgender Form
30.05.1979
in dieser Form, ohne Punkte einzugeben:
30051979
Ich hätte jetzt, Anfänger wie ich bin :D, einfach 3 EditFelder genommen, und dann jenes:
Datum := Edit1.Text + '.' + Edit2.Text + '.' + Edit3.Text
Ich habs auch schon so, zugegeben etwas eleganter, probiert, das hat aber nicht geholfen (Fehlermeldung: Kein Datum):
FormatDateTime('dd"."mm"."yyyy', StrToDate(Edit.Text);
Gibts de facto eine Alternative zu meinen stümperhaften :shock: Versuchen?
mit bestem Dank
kiwicht
smiegel - Di 28.01.03 18:22
Hallo Kiwicht,
die einfachste Möglichkeit ist:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| var s:String; ... s:=Edit1.Text; if (Length(s)<>8) then // 30051979 entspricht 8 Stellen begin ShowMessage('Eingabe ist falsch'); Edit1.SetFocus; Exit; end; // if EditDatum.Text:=Format("%s.%s.%s", [System.Copy(s, 1, 2), System.Copy(s, 3, 2), System.Copy(s, 5, 4)]); |
Schwieriger wird es, wenn er bei Tagen und Monaten keine führende Null angibt. Also statt 06051955 --> 651955. Aber damit nicht genug. Wenn schon komfortabel, was ist dann, wenn der Benutzer das Jahr nur 2-stellig angibt --> 6555. Dann habe ich noch zusätzlich das Problem, dass ich nicht einmal weiss, in welchem Jahrhundert ich bin;-)
Wolff68 - Di 28.01.03 19:04
Oder Du setzt Dir einfach die Punkte, wohin sie gehören:
Quelltext
1: 2: 3: 4:
| s := Edit1.Text; // TTMMYY oder TTMMYYYY Insert('.', s, 3); Insert('.', s, 6); d := StrToDate(s); |
Damit ist auch egal, ob er das Jahr 2- oder 4-Stellig angibt. 8)
die Führenden Nullen bei Tag oder Monat sind aber ein MUSS.
Das ganze sollte übrigends unbedingt in einen Try-Except Block.
grayfox - Di 28.01.03 19:57
hallo kiwicht!
ich würde ein TMaskEdit verwenden, bei dem ich das property 'EditMask ' auf '!90/90/0000;1;_' setze.
somit ersparst du dir schon die überprüferei auf gültige datumseingaben :)
mfg, stefan
kiwicht - Mi 29.01.03 17:50
ach gott.. soviel antworten.. kann mich garnich entscheiden.. :shock: :D ..
ich probier alle mal aus, weil gut sehen sie alle aus, vielen dank dafür!
mfg
kiwicht
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!