Estoy usando Delphi 2007 con todos los parches y actualizaciones.* A veces * aparece un error al asignar a una constante en Delphi
Tengo un archivo que es utilizado por dos proyectos diferentes. En ese archivo es un procedimiento, que voy a simplificar de la siguiente manera:
procedure MyProcedure;
const
UniqueValue: integer = 0;
begin
//some code
Inc(UniqueValue);
//some more code
end;
El comando
Inc() falla, porque no se puede asignar a una constante. En un proyecto, recibo un error en ese sentido (llamaré a ese proyecto "Exacto"). En el otro proyecto, no recibo ningún error (lo llamaré "falso"). Tampoco recibo ninguna advertencia. No puedo entender por qué el compilador deja pasar este código incorrecto.Aquí es lo que he intentado en el proyecto Bogus:
1 - Introducir un error obvio, como escribir "slkdjflskdjf" en medio de una línea
Resultado: aparece un error, lo que demuestra que realmente está tratando de compilar este archivo.
2 - Eliminar el .DCU, y reconstruir el proyecto
Resultado: El .DCU se re-genera, una vez más demostrando que el proyecto es realmente compilando el código erróneo.
¿Alguien tiene alguna idea de por qué ocurriría este comportamiento? Y más específicamente, ¿por qué ocurriría en un proyecto pero no en otro? ¿Hay alguna opción de compilador oscura para permitir la asignación a constantes?
Una última nota: ambos proyectos se convierten de Delphi 5. En Delphi 5 con código similar, ambos compilan bien.
Edit: Gracias por toda su ayuda. Después de cambiar la directiva de constantes mecanografiadas asignables, puedo obtener un comportamiento uniforme en ambos proyectos. Aprendí algo nuevo hoy ...