Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
17. Okt 2018
Also mein Compiler (10.2.3) findet das hier vollkommen OK:
TGewicht = record
private
FValue : Extended;
private const
GrammPerKilo = 1000.0;
GrammPerTonne = 1000.0*GrammPerKilo;
GrammPerMegat = 1000.0*1000.0*GrammPerTonne;
public
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
16. Okt 2018
Was würde denn dann eine class const Konstante von einer gemeinen const Konstante unterscheiden? :gruebel:
TGewicht = Record
private const
GrammPerKilo = 1000;
GrammPerTonne = 1000+GrammPerKilo;
GrammPerMegat = 1000*1000*GrammPerTonne;
End;
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
16. Okt 2018
Ich sehe gerade, daß dort mit Int64 statt einem Float-Typ gearbeitet wird. Dann kann das natürlich wirklich nicht funktionieren.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
16. Okt 2018
Ich kann zwar die Implementierung hier nicht sehen, aber nach meinem Vorschlag sollte jedenfalls genau das dabei herauskommen. Zumindest ist das in meinem Beispiel von #14 so.
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
11. Okt 2018
Diese Verwendung war aber auch nicht in den vier Vorgaben des Posts aufgeführt.
Punkt 1 ist gegeben, für Punkt 2 und 3 muss TWeight noch etwas erweitert werden und Punkt 4 liegt als Beispiel vor. Daß eine direkte Zuweisung einer TGramm-Variable an eine TKilogramm-Variable vom Compiler verboten sein soll, kann ich da nicht entdecken. Eine korrekte Zuweisung muss natürlich über TWeight...
Forum: Algorithmen, Datenstrukturen und Klassendesign
Delphi
by Uwe Raabe,
11. Okt 2018
Unter Verwendung der Units System.ConvUtils und System.StdConvs kann man da recht einfach was zaubern:
type
TGramm = type Double;
TKilogramm = type Double;
TWeight = record
private
FConv: TConvType;
FValue: Double;