2009-06-10 14 views
9

¿Hay alguna manera de forzar al compilador de Delphi a mostrar todas las sugerencias y advertencias todo el tiempo?Cómo forzar al compilador de Delphi a mostrar todos los consejos y advertencias

Aquí es el comportamiento que actualmente estoy viendo en Delphi 6:

  1. Salida nueva copia de mi solicitud de control de código fuente
  2. proyecto abierto en Delphi y compilar
  3. Todos los consejos y advertencias para el proyecto se muestran
  4. hacer un cambio en una unidad de compilación
  5. Sólo los consejos y advertencias de la unidad modificada se muestra

Entonces, pensé que tal vez podía engañar a Delphi al eliminar todos los archivos dcu para forzarlo a recompilar todo. Sin suerte. El compilador, de hecho, recompila todas las unidades, pero no muestra las sugerencias y advertencias para esas unidades.

EDITAR: Realizar una compilación completa (Proyecto> Compilar) produce los mismos resultados desafortunados.

INFORMACIÓN NUEVA: Si modifico una unidad y luego compilo, recibo las advertencias. Sin embargo, si modifico una unidad y luego compilo, no recibo las advertencias. Estoy pensando que esto apunta a que las advertencias se desactivan en alguna parte. Posiblemente en una biblioteca de terceros?

Parece que debería haber una manera de pedirle a Delphi que vuelva a mostrar todos los consejos y advertencias que no requieren que revise una copia nueva del control de fuente o modifique cada unidad una a una .

+0

Delphi 1 o Delphi 2009, o algo en el medio? Sería útil saber ... – Roddy

+0

Estoy usando Delphi 6 –

Respuesta

3

Verificaría si desactiva las advertencias en algunas de sus unidades.
Dependiendo del último cambio en las unidades, la orden de compilación puede cambiar.En algunos casos, las advertencias pueden permanecer deshabilitadas para una unidad que se compila después de while, cuando recién se ha eliminado el control de la versión, se compiló antes, con las advertencias.
Preste especial atención a cualquier archivo Include que pueda utilizar.

+0

No incluyo explícitamente ningún archivo (más allá de las declaraciones de uso) y mi interpretación de los archivos de ayuda en las directivas $ WARN y $ WARNINGS es que no se aplican más allá del alcance de la unidad actual. En cualquier caso, no tengo ninguna de esas directivas en mi código. ¿Podría una unidad usada de una biblioteca de terceros causar el problema? –

+0

Hemos tenido este problema con un código de terceros en el que el alcance no estaba limitado como se esperaba. –

6

Las sugerencias y advertencias son generadas por el compilador. Solo informará sobre las unidades que ha compilado. El comando "compilar" solo compilará los archivos que tienen cambiado. Para forzar una recompilación de todas las unidades utilizadas por su proyecto, use el comando Build en su lugar.

Las versiones posteriores asignan una tecla de método abreviado (Shift + F9) al comando "Generar".

para conseguir que la combinación de teclas en Delphi 6, install this utility, que he usado durante un tiempo con gran éxito en Delphi 5.

+0

Hacer una compilación completa produce exactamente los mismos resultados que una compilación. –

+0

¿Qué ocurre si elimina manualmente todos los archivos .DCU y luego realiza una compilación completa? – JosephStyons

+0

Todavía el mismo resultado, me temo. –

2

Si utiliza DCC32.exe, se mostrarán todas las advertencias, siempre. (Esta es otra razón por la que uso scripts de compilación para todos mis proyectos.)

+1

Eso no es completamente cierto, solo cuando el modificador -B se da a dcc32, que es el equivalente a hacer una compilación completa en el IDE. Sin ese conmutador, dcc32 también realiza construcciones incrementales de manera predeterminada. Y las advertencias se mostrarán solo para las unidades que se compilan, obviamente. – mghie

+1

Tienes razón, -B es obligatorio. Para algunos proyectos, empiezo copiando las fuentes a una estructura de directorio de destino vacía, solo que en este caso una -B no es necesaria. – mjn

0

Todavía estoy usando D6 para algunos proyectos y si realizo una compilación completa, todas las sugerencias y advertencias se muestran/vuelven a mostrar. Para verificación de sintaxis o compilación, solo se muestran los mensajes de unidad modificados.

Tiene algo más erróneo o dañado en alguna parte. Intente eliminar el archivo .dsm del proyecto y los archivos .dof (se reconstruirán). El archivo .dof contiene las advertencias y los indicadores de pistas.

+0

No tuve suerte con la regeneración del DOF. No puedo encontrar ningún archivo .dsm en mi proyecto. –

3

Tuve el mismo problema y finalmente encontré la solución ... Buscar cadenas $ WARNINGS OFF y $ HINTS OFF, y no solo de archivos * .pas sino de todos los archivos. Tenía esta extraña idea de terceros .inc archivo:

{$ IFDEF DEBUG} {$ ADVERTENCIAS EN} {$ pistas sobre } {} $ ELSE {off} $ ADVERTENCIAS {$ HINTS OFF } {$ ENDIF}

+0

Intentaré evitar cualquier componente futuro de cualquiera que haya hecho algo como esto. –

Cuestiones relacionadas