Hallo...
ich suche nach einem eleganten Weg - vielleicht kann hier jemand weiterhelfen.
Ich versuche das mal irgendwie verständlich zu erklären.
Beispielsituation:
Es gibt 2 Parameter als kleine Dateitypen - z.B. x/y Koordinatenpaare als Byte (0..255)
Theoretisch könne man diese zu einem 16-bit Word zusammensetzen - und praktischerweise
als eine einzige Variable benutzen um sie Funktionen zu übergeben und/auch als Erbegnis zu erhalten.
So in der Art:
Code:
Function Mittelpunkt(coord1,coord2:TCombinedCoord):TCombinedCoord;
begin result.x := (coord1.x + coord2.x) shr 1;
result.y := (coord1.y + coord2.y) shr 1;
end;
Sprich die Funktion bekommt nur zwei WORD's geliefert, rechnet aber mit dem Byte-Anteilen,
und liefert dann ein kombiniertes WORD des Koordinatenpaares zurück.
Verwenden würde ich das dann am liebsten so:
Code:
MeinMittelpunkt := Mittelpunkt( startpunkt, endpunkt );
MeinMittelpunkt := Mittelpunkt( (x1,y1), (x2,y2) );
MeinMittelpunkt := Mittelpunkt( (14,52), (29,151) ); // wäre toll, wenn das so geht
Str := 'Mittlere x-Koordinate: ' + i2s(MeinMittelpunkt.x);
Ich hoffe das war so im Groben verstöndlich.
Kann man da mit packet record o.ä. etwas Elegantes tricksen?