Es müßte wohl mehr so aussehn:
MAX_Y+1 ist ja der kleinste Wert, in dessen Vielfachen X liegen muß, so daß Y noch reinpaßt.
Setzen:
MyInt := X * (MAX_Y + 1) + Y;
Auslesen:
Delphi-Quellcode:
X := MyInt div (MAX_Y + 1);
Y := MyInt mod (MAX_Y + 1);
und falls MIN_Y auch negativ sein kann:
Setzen:
MyInt := X * (Max(MAX_Y, Abs(MIN_Y)) + 1) + Y;
Auslesen:
Delphi-Quellcode:
X := MyInt div (Max(MAX_Y, Abs(MIN_Y)) + 1);
Y := MyInt mod (Max(MAX_Y, Abs(MIN_Y)) + 1);