2010-01-27 11 views
6

Recientemente convertimos nuestro proyecto Delphi de larga ejecución a Open Source. Varias personas ya han contribuido con los parches, lo cual es genial, pero desafortunadamente los formularios y marcos guardados con Delphi 2006 (y posterior) contienen nuevas propiedades en .dfm que no son manejadas por versiones anteriores. Los formularios son manejados con bastante gracia por el IDE ("ignore propery?"), Pero los marcos se cargan en el tiempo de ejecución y producen errores. No es una opción, en lo que a mí respecta.¿Cómo mantener formularios y marcos compilables en Delphi 6 - 2007?

Ahora quité esas propiedades de los archivos .dmf a mano, pero realmente me pregunto si hay una solución más elegante. No hay forma de guardar en un formato retrocompatible con los nuevos IDE, ¿verdad? ¿Existen herramientas para eliminar las propiedades no soportadas de .dfm? ¿Alguna otra solución elegante que me falta?

Normalmente, con un proyecto comercial, simplemente actualizaría el proyecto a la versión más reciente aplicable ... pero como esto es de código abierto, realmente no quiero perderme con los desarrolladores que todavía trabajan en Delphi 7 . Eso me incluye, en realidad.

Respuesta

11

JEDI JVCL El proyecto utiliza un poco DC.exe utilidad (limpiador de Delphi) y una lista de propiedades en DFms que no están presentes en versiones anteriores de Delphi, la mina contiene el texto siguiente:

*.PopupMode 
*.PopupParent 
*.ExplicitLeft 
*.ExplicitTop 
*.ExplicitWidth 
*.ExplicitHeight 
*.BevelKind 
*.BufferDocument 
*.DoubleBuffered 
*.ParentDoubleBuffered 
*.DisableHyperlinks 
*.AlwaysEnquoteFloats 
*.PixelsPerInch 

corro esta utilidad dc.exe de un archivo de proceso por lotes que limpia mi dfms antes de confirmar cambios a la subversión. La sintaxis en mi archivo por lotes para esto es:

dc.exe -s -fd10.txt *.dfm -i 

se puede agarrar mis cosas en:

http://sites.google.com/site/warrenpostma/files 
+0

Escribe waaay demasiado rápido. Estuve casi todo el camino publicando la misma información; me pegaste a eso –

3

Bueno, para mayor abundamiento:

Abiertas las DFMS en la más antigua Delphi compatibles , deja que elimine todas las propiedades desconocidas, cambia una propiedad y guarda.

Para sus propósitos, la solución de Warren es mejor, pero puede ser una solución. Lo hice por un tiempo cuando teníamos D7-D2006ing dual.

+0

+1 en aras de la exhaustividad :-) –

4

Puede probar Andy DFMCheck. Puede abrir y cerrar automáticamente todas las formas y marcos en un proyecto, lo que hace que el IDE elimine las propiedades desconocidas (como Marco wrote).

+0

Bien - No sabía de esto. Gracias. –

Cuestiones relacionadas