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
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.
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.
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.
Crear proyecto de prueba DUnit. Ejecute la prueba antes de la publicación. Sonar todas las campanas cuando falla la prueba.
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.
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.
- 1. ¿Cómo se excluyen las filas que no se unen con otra tabla?
- 2. ¿Cómo puedo hacer que las propiedades de los archivos de propiedades sean obligatorias en Spring?
- 3. GridBagLayout: cómo evitar que se colapsen los componentes invisibles
- 4. NUnit - ¿Confirma para verificar que todas las propiedades sean iguales?
- 5. wxWidgets que unen problema
- 6. HTTP básicas que se unen no está configurado correctamente
- 7. ¿Cómo puedo verificar que las páginas web estén comprimidas?
- 8. ¿Cómo evitar que se serialicen las propiedades implementadas automáticamente?
- 9. ¿Cómo verificar las aplicaciones que se ejecutan actualmente en Android?
- 10. ¿Cómo hacer que las propiedades sean privadas?
- 11. ¿Cómo verificar que todas las tareas se hayan completado correctamente?
- 12. ¿Cómo impido que las propiedades de enlace se actualicen?
- 13. ¿Cómo puedo hacer que los guiones Lua no se descompilen?
- 14. Arel, cómo se unen
- 15. wpf que define las propiedades personalizadas para los estilos
- 16. ¿Cómo verificar que NO se invocó ese método en Moq?
- 17. ¿Cómo puedo verificar la última vez que se ejecutaron las estadísticas en Oracle sin utilizar OEM?
- 18. C# - Hacer que los campos/propiedades se lean solo condicionalmente
- 19. APP izquierda se unen para encontrar las entradas no utilizadas
- 20. haciendo que las condiciones para Linux y Windows cuando se unen las bibliotecas de Windows
- 21. ¿Cómo verificar las propiedades de los elementos en la automatización de la GUI de iOS?
- 22. que imita las propiedades anidadas con mock
- 23. ¿Cómo se prueban los componentes visuales?
- 24. Propiedades de accesibilidad que no se actualizan en swf cargado
- 25. Knockout con ko.toJSON - cómo ignorar las propiedades que son nulas
- 26. ¿Puedo hacer que @OnApplicationStart no se ejecute en las pruebas?
- 27. ¿Cómo crear componentes que contienen divisores?
- 28. ¿Cómo puedo verificar que una versión de Perl no sea mayor que algún valor?
- 29. ¿Java tiene "propiedades" que funcionan de la misma manera que las propiedades funcionan en C#?
- 30. Obtener solo las propiedades que implementan una interfaz
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
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. –