Wenn Integer eingefroren wird, dann wird es wohl auch der Cardinal, da es ja die selben "Typengrößen" sind, nur mit dem Unterschied des Vorzeichens.
Also wirst du auch mit Cardinal Probleme bekommen.
PS: Rate mal, warum es standardmäßig bei den Speichermanagern eine 2 GB-Grenze gibt und man sein Programm erst auf die 4 GB (3,x GB) freischalten muß?
Weil Viele "Integer(P) < 0" als Fehlerkennzeichnung oder "Integer(P) <= 0" für leere/ungültige Zeiger verwendet haben.
Wenn nur Integer, aber nicht Cardinal eingefroren würde, dann wäre das meines Erachtens nach noch viel Schlimmer.