Delphi 7 introduced a handful of new compiler options that control the generation of warnings pertaining to “unsafe code.” Those warnings are to help developers prepare their code for the .Net version of Delphi, a preview version of which came with Delphi 7. .Net does not allow the same kinds of pointer operations that plain old Win32 code does, so the compiler flags the code that won’t be allowed in later Delphi versions.
Delphi stores the project’s compiler settings in the corresponding .dof file. If the warning settings are not there, then the compiler acts as though they were not disabled. Normally, that isn’t a problem since the warnings are automatically disable for new Delphi projects. The problem comes when you open an old project, such as one you created in Delphi 5 or Delphi 6. Those versions did not have any .Net-related warnings, and so their .dof files do not contain anything to disable them. Delphi 7 doesn’t know the difference, and so it assumes that you have intentionally enabled the warnings.
The solution is as simple as disabling the warnings again in the project-options dialog box.