2010-01-27 10 views
6

Abbiamo recentemente convertito il nostro progetto Delphi di lunga data in Open Source. Molte persone hanno già contribuito con le patch, il che è grandioso, ma sfortunatamente le forme e i frame salvati con Delphi 2006 (e successivi) contengono nuove proprietà nel file .dfm che non sono gestite da versioni precedenti. I moduli vengono gestiti in modo abbastanza agevole dall'IDE ("ignore propery?"), Ma i frame vengono caricati in fase di esecuzione e generano errori. Non un'opzione, per quanto mi riguarda.Come mantenere moduli e frame compilabili in Delphi 6 - 2007?

Ora ho rimosso queste proprietà dai file .dmf a mano, ma mi chiedo davvero se esiste una soluzione più elegante. Non c'è modo di salvare in un formato compatibile con le versioni precedenti dei nuovi IDE, vero? Esistono strumenti esistenti per rimuovere le proprietà non supportate da .dfm? Qualche altra soluzione elegante che mi manca?

Normalmente, con un progetto commerciale, vorrei semplicemente aggiornare il progetto alla versione più recente applicabile ... ma poiché questo è open source, non voglio davvero perdere gli sviluppatori che stanno ancora lavorando su Delphi 7 Questo include me stesso, in realtà.

risposta

11

Il progetto JEDI JVCL usa un po 'dc.exe utility (Delphi più pulita) e un elenco di immobili a DFms che non sono presenti nelle versioni precedenti di Delphi, la miniera contiene il seguente testo:

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

corro questa utilità dc.exe da un file batch che ripulisce il mio dfms prima di commettere le modifiche a in sovversione. La sintassi nel mio file batch per questo è:

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

si può afferrare la mia roba a:

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

Digitate waaay troppo velocemente. Ero quasi in procinto di pubblicare le stesse informazioni; Mi hai battuto sul tempo. –

3

Beh, per ragioni di completezza:

Aprire le DFms nella più antica Delfi supportati , lascia rimuovere tutte le proprietà sconosciute, modificare una proprietà e salvare.

Per i vostri scopi, la soluzione di Warren è migliore, ma può essere una soluzione. L'ho fatto per un po 'quando eravamo dual D7-D2006ing.

+0

+1 per completezza :-) –

4

Puoi provare Andy's DFMCheck. Può aprire e chiudere automaticamente tutti i moduli e le cornici di un progetto, il che rende l'IDE rimuovere proprietà sconosciute (come Marco wrote).

+0

Nice - Non lo sapevo. Grazie. –