Einzelnen Beitrag anzeigen

Amicello

Registriert seit: 12. Sep 2016
13 Beiträge
 
#1

kleine Datentypen (BYTE) zusammenfassend als z.B. WORD/Integer übergeben

  Alt 14. Okt 2024, 15:07
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?
  Mit Zitat antworten Zitat