Zitat:
if (page = nil) or (Longint(CodeMemPages^.CodeBlocks)...
Das Ergebnis der Abfrage steht ja bereits vor dem or fest, wenn page nil ist. Wenn die Option nicht aktiv ist, wird der Rest dann nicht mehr ausgewertet. Bei aktiver Option wird weitergeprüft, Du dereferenzierst dann nil --> Bumm.