Hallo Himitsu,
vielen Dank für das Beispiel.
Die Sache mit Absolute scheint wirklich sehr interessant zu sein. Das werde ich mir merken.
Beim zweiten Beispiel...
Nun ja ich finde es trotzdem Merkwürdig, dass der Compiler da meckert. Belegen doch beide Werte gleich viel Speicher. Vermutlich konnte man sich nicht einigen ob man bei diesem Cast nur den Ganzzahligen Wert oder den binär betrachteten Wert des belegten Speichers zurückgibt.
Eine Möglichkeit diesen Cast trotzdem auszuführen währe dann aber noch folgende:
Code:
var
SingleVar: Single;
begin
SingleVar := 1.1234;
ShowMessage(IntToHex(Integer(Pointer(SingleVar)),8));
end;
Dabei geht aber leider wieder die Typüberprüfung verloren. Da SingleVar von jedem Typ sein könnte.
Mir persönlich gefällt dann Deine Variante mit Absolute doch besser, wenn keine Bytevertauschungen (Big <-> Little Endian) durgeführt werden müssen.