AGB  ·  Datenschutz  ·  Impressum  







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

Objekt als tDateTime übergeben?

Ein Thema von Getox · begonnen am 28. Feb 2019 · letzter Beitrag vom 1. Mär 2019
Antwort Antwort
Getox

Registriert seit: 28. Dez 2012
155 Beiträge
 
Delphi XE3 Professional
 
#1

Objekt als tDateTime übergeben?

  Alt 28. Feb 2019, 15:51
Delphi-Version: XE3
Moin,

ich möchte mir gerne eine eigene DateTime Klasse bauen.

Da TDateTime im Grunde nichts anderes als ein Double ist, hat es natürlich auch keine Funktionen oder ähnliches. Das meiste kann man mit Funktionen aus DateUtils oder mit Trunc und Frac machen... aber ich würde gerne, dass alles was ich so brauche in meinem DateTime Objekt direkt drin ist. Also myDate.getUhrzeit, myDate.getWochentag oder auch Funktionen wo ich direkt einzelne Elemente des Datums oder der Uhrzeit setzen/verändern kann. Also myDate.setMonat(aMonat: tMonatEnum) oder myDate.incHour(aAnzahl: Integer). Ja Die Namen habe ich mir gerade ganz schnell und sehr denglisch aus den Fingern gesaugt.

Soweit ist das technisch ja noch kein Problem... aber bekomme ich das irgendwie hin, dass ich Funktionen, die ein tDateTime als Parameter verlangen einfach mein Objekt geben kann? Da TDateTime an sich keine Klasse ist, kann ich ja auch nicht davon ableiten.

Natürlich könnte ich auch einfach das interne tDateTime per Property rausholen irgendeineProzedur(myDate.DateTime) aber ich würde es cooler finden einfach stumpf mein Objekt da reinzugeben.
Ist ein Nilpferd ein Pferd, das nicht vorhanden ist?
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Objekt als tDateTime übergeben?

  Alt 28. Feb 2019, 16:05
Hallo,
Zitat:
dass ich Funktionen, die ein tDateTime als Parameter verlangen einfach mein Objekt geben kann
Kurze Antwort:
nein, genau für seine Typsicherheit/Typstrenge ist Delphi bekannt.

Lange Antwort:
Es kommt drauf an ...

Bsp:
DateToStr, erwartet ein TDateTime

Du könntest dir eine eigene Unit DateUtilsEx erzeugen,
mit je 2 überladenen Methoden drin.

function MyDateToStr(ADateTime: TDateTime): String; overload;
function MyDateToStr(ADateTime: TDateTimeClass): String; overload;

Inwiefern es sogar geht das My wegzulassen, müsstest Du ausprobieren.
Ich denke, es geht nicht, weil ja auch die Originalmethode als overload gekennzeichnet werden müsste.
Heiko
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Objekt als tDateTime übergeben?

  Alt 1. Mär 2019, 09:14
Nicht das Rad neu erfinden. Diese Unit einbinden, verwenden und nach belieben erweitern:
https://github.com/colinj/TDateTimeH...TimeHelper.pas
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Objekt als tDateTime übergeben?

  Alt 1. Mär 2019, 09:25
Hallo,
XE3 konnte schon record helper?

https://www.thoughtco.com/record-hel...r-sets-1058204

Tatsächlich.
Heiko
  Mit Zitat antworten Zitat
Antwort Antwort


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:28 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