Hallo zusammen,
ich bin dabei mich in Delphi einzuarbeiten und probiere ein bisschen rum. Ich bin dabei eine Prozedur zu schreiben, die bei einem unbekannten Eingabewert (auch Typ ist unbekannt) den Datentyp herauszufinden. Den Eingabewert habe ich als Variant definiert und ich prüfe den Typ per VarType. Das funzt eigentlich auch ganz gut.
Probleme gibt es nur mit Datum- bzw. Zeit-Angaben. Ein Datum vom Typ TDate erkennt er nicht als Datum sondern als Double. Das ist zwar logisch, weil TDate vom Typ Double ist, aber ein Datum vom Typ TDateTime erkennt er als Datum, obwohl TDateTime auch vom Typ Double ist.
Jetzt könnte ich natürlich alle Datums-Werte als TDateTime übergeben, aber wie kann ich dann Datums- und Zeit-Werte unterscheiden ?
Kennt einer von Euch dafür eine Lösung.
Danke im Voraus
mtm
P.S. : bitte keine Sinnfrage, was die Prozedur betrifft. Wie gesagt, ich bin nur am rumprobieren.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure erkenneWert(pWert:Variant); begin case VarType(pWert) of varSmallint,varInteger,varShortInt,varByte, varWord, varLongWord, varInt64 : ShowMessage('Integer'); varSingle, varDouble: ShowMessage('Float'); varString: ShowMessage('String'); varDate: ShowMessage('Datum'); varBoolean: ShowMessage('Boolean'); varCurrency: ShowMessage('Währung'); end; end; |