Was willst Du damit erreichen? Speicher sparen? Klar geht das, aber bei vielen Werten geht das dann ziemlich auf die Performance und nicht zuletzt auf die Lesbarkeit / Debugbarkeit.
Ich würde dann vermutlich ein
Delphi-Quellcode:
type
TCombinedCoord = packed record
var integer of // <= das belegt keinen Speicher
0: (AsWord: Word);
1: (x, y: Byte);
end;
Einen solchen Record kann man dann auch noch mit ein paar Methoden schmücken:
Delphi-Quellcode:
type
TCombinedCoord = packed record
// Methoden müssen vor dem VAR-Part deklariert werden
class function From(_x, _y: byte): TCombinedCoord; static;
var integer of
0: (AsWord: Word);
1: (x, y: Byte);
end;
So dass man z.B. folgendes schreiben könnte:
MeinMittelpunkt := Mittelpunkt(TCombinedRecord.From(x1,y1), TCombinedRecord.From(x2,y2));
Ob das aber soviel besser ist?
Lesbarer wäre definitiv eine normale Funktion statt einer Methode:
MeinMittelpunkt := Mittelpunkt(Combine(x1,y1), Combine(x2,y2));