Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   TimeSpan+DateTime etc unter Delphi Win32 (https://www.delphipraxis.net/59109-timespan-datetime-etc-unter-delphi-win32.html)

Lemmy1 9. Aug 2006 23:07

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Hi!

Schonmal im Vorraus Danke für das Interesse. So langsam möchte ich das Projekt wirklich durchziehen und zumindest die wichtigsten Klassen 100% kodieren und testen.

Zu Deinem Problem: Also ich hab nur Delphi 2006 installiert. Alle anderen Versionen stehen im Schrank.

Das Problem an der Delphi 7 Sache ist aber, dass da einfach Sprachfeatures fehlen: Records mit Methoden und Operator Overloading.

Ziel des ganzen ist es ja, die Sourcecode Kompatibilität zu .Net herstellen, so dass man einfach zwischen .Net und Win32 wechseln kann OHNE auf die ganzen coolen Framework classes zu verzichten.

Operator Overloading auf Records könnte man dann ja nur mit irgendwelchen Funktionen von außen in der Art von "TimeSpanAdd(ts1, ts2)" machen, aber das würde dann eben nicht unter .Net kompilieren. Außerdem wärs hässlich :)

3_of_8 9. Aug 2006 23:24

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Schau dir mal meinen Code an.

Ich verwende objects, das sind Records mit Methoden.

Ich ersetze einfach die Propertys direkt durch ihre Accessor-Methoden und deklariere die Klassenoperatoren als Funktionen.

Man muss die Dinger nicht instantiieren oder sowas, kann aber trotzdem mit ihnen ein paar Spielereien machen. Nur Operatorenüberladung funktioniert halt nicht.

omata 9. Aug 2006 23:26

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Liste der Anhänge anzeigen (Anzahl: 1)
Wenn ich ein Delphicompiler wäre hätte ich auch so reagiert. In der Unit waren soviele gemeine Fehler, dass ich da auch abgedret wäre :zwinker:

Gruss
Thorsten

3_of_8 9. Aug 2006 23:53

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich konnte es ja nicht debuggen - habs jetzt unter Delphi 2005 gedebuggt und jetzt läuft es - nur unter Delphi 7 nicht, da kommt weiterhin die AV.

Ein Aufruf sähe so aus:
Delphi-Quellcode:
var time1, time2: TimeSpan;
begin
time1:=time1.Create(16,20,0);
time2:=time2.Create(18,40,0);
showmessage(time2.Subtract(time1).toString);

omata 9. Aug 2006 23:59

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Mit der oben angehängten Unit kommt unter Delphi7 und deinem Beispiel folgendes heraus: 02:20:00

Edit: Deine Unit sieht jetzt im Prinzip so aus wie meine überarbeitete. Jetzt funktioniert auch diese unter Delphi7.
Was mir gerade aufgefallen ist: Wieso benutzt du hier object und nicht class?

Gruss
Thorsten

3_of_8 10. Aug 2006 00:02

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Was hast du erwartet?

18-16=2
40-20=20

stimmt doch.

omata 10. Aug 2006 00:09

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Ich habe gar nichts erwartet. Ich habe nicht versucht die Unit zu verstehen. Ich habe nur die Fehler behoben. Da du ein Beispiel gepostet hast, war ich nur an einer Lösung interresiert.

Gruss
Thorsten

3_of_8 10. Aug 2006 00:11

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Sry, das klang so als würdest du das Ergebnis für falsch halten.

Ich verwende deshalb nicht class, weil man Klassen instantiieren muss.

Auf die Dinger kann man auch ohne Instantiierung zugreifen.

Allerdings könnte man natürlich auch Klassen verwenden, das ist klar.

Lemmy1 10. Aug 2006 00:15

Re: TimeSpan+DateTime etc unter Delphi Win32
 
Gibt es denn abgesehen von der fehlenden Operator Überladung noch irgendwelche Unterschiede zwischen Records mit Funktionen und old-style "object"s?

Hrm könnt ja als kompilierswitch ganz nett sein, dass auch via objects zu realisieren....hrm

3_of_8 10. Aug 2006 07:48

Re: TimeSpan+DateTime etc unter Delphi Win32
 
objects haben Methoden. records nicht.

objects können zwar auch Propertys haben, aber die werden vom Compiler so umgesetzt, dass sie AVs auslösen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:50 Uhr.
Seite 2 von 2     12   

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