Ja, drum macht man das doch extra so
Integer ist ein 32 Bit-Speicherblock
Cardinal auch
Auf diese Weise sagt man dem Compiler einfach, daß er den Speicherbereich der Integervariabe als Cardinal interpretieren soll.
Heißt, dieses wird nun als Cardinal angesehn und somit der RangeCheck des Cardinals verwendet.
Und da Cardinal = Cardinal ist, gibt es keine Probleme.