2009-01-29 10 views
6

estoy usando Delphi 2007. A veces, las propiedades que unen a los componentes se pierden. Esto suele ser Propiedades de acción y conjuntos de datos de búsqueda. Tengo un par de veces tenían algunas correcciones de errores de emergencia y envió una versión para los clientes con un resultado algo catastrófico debido a esto :-) Alguien sabe una forma de verificar que las propiedades que se supone que deben establecer realmente se establecen, o una manera para evitar que esto suceda?¿Cómo puedo verificar que las propiedades que unen los componentes no se "pierdan"?

Respuesta

5

Has recibido varias buenas respuestas sobre cómo detectar cuándo sucede esto (hasta votado). Pero una forma de evitar que esto suceda (a veces) es asegurarse de haber agregado todas las unidades referenciadas a su DPR. Si se abre un formulario, por ejemplo, que contiene componentes que hacen referencia a otros componentes en un módulo de datos, y que el módulo de datos no ha sido añadido a la DPR/proyecto, que está casi garantizado para tener el IDE eliminar esas referencias, porque elimina referencias que no puede determinar son válidas. Si, por otro lado, el módulo de datos está en el DPR, entonces el IDE podrá encontrarlo, y es menos probable que elimine las referencias en primer lugar

Desafortunadamente, todavía ocurre de tiempo, por lo que aún debe tomar las medidas de precaución detalladas en las otras respuestas. Pero esto mejorará las cosas, si aún no lo hace.

10

Puede asignar tales valores en el código, obviamente.

Sin embargo, lo más importante es que debe diferenciar cada archivo antes de comprometerse con el control de fuente. Siempre.

Asegúrate de que tus archivos dfm sean texto, no binarios. Entonces será fácil ver cambios no deseados antes del check-in/commit.

Diffing todo ha detenido una gran cantidad de errores potenciales para mí.

Un sistema de prueba y construcción automático también le daría confianza en lo que entrega.

+0

Los problemas que he tenido con esto generalmente han sido enlaces a otros formularios que no están abiertos en el IDE cuando se guarda un formulario. He usado una combinación de pruebas de código y de sistema de compilación para asegurarme de que funciona, y además, me lo dice en el momento del desarrollo. – mj2008

+0

Me pasa algo similar cuando uso Delphi Project Groups para comparar archivos de proyecto. Encuentro que tan pronto como uso esto, los componentes que tienen en cuenta la base de datos pierden su conexión con el DataModule en el que está su tabla. Dejé de usar Grupos de proyectos. –

1

Desea una forma de verificar si los valores están configurados correctamente. Bueno, puedes usar pruebas unitarias para esto. Simplemente inicie un formulario, compare las propiedades y listo.

La comparación de los dfm es también una buena forma, por supuesto, pero no tiene en cuenta los cambios debidos a cambios en los valores predeterminados o cambios en el código.

2

Crear proyecto de prueba DUnit. Ejecute la prueba antes de la publicación. Sonar todas las campanas cuando falla la prueba.

1

Cuando agrega un formulario, un módulo de datos o un marco a un proyecto, el IDE inserta una pequeña "etiqueta" de comentario después del nombre de la unidad en el archivo dpr. Según mi experiencia, si por alguna razón esta etiqueta no está presente, el IDE es más propenso a perder referencias de componentes de módulos cruzados.

Apoyo de todo corazón la idea de ver siempre las diferencias antes de cada compromiso con el control de la versión, si está usando tal cosa.

1

Odio decir esto, pero el control de código fuente puede ayudar en estas situaciones. Incluso con un error de emergencia arreglo que debe comprobar todo en un repositorio de código fuente (Perforce es mi favorito personal). En una pequeña solución, podría ver qué archivos han cambiado si tiene algún cambio que no esté esperando.

Cuestiones relacionadas