2016-05-19 3 views
2

J'utilise Delphi 10.1 Berlin. Un de mes amis a Delphi XE4.Est-il possible de travailler sur un formulaire FMX avec différentes versions de Delphi?

Je souhaite modifier le code appartenant à un formulaire FMX. Le code et le formulaire ont été écrits en XE4 et doivent rester compilables en XE4. Si je modifie le code dans l'EDI 10.1 et enregistre mes modifications, Delphi modifie le code source (en ajoutant des unités) et convertit le formulaire (fichier FMX) en un nouveau format. Si cette forme modifiée est compilée dans XE4 cela conduit à plusieurs erreurs.

Est-il possible de dire à Delphi de ne pas faire ces modifications?

BTW:

  • Si je modifier le code en dehors du tout IDE semble fonctionner très bien.
  • Delphi 10.1 est des unités d'addition (par exemple FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation), même si ceux-ci sont déjà là mais ifdefed, par exemple:

    {$IFDEF DELPHIX_BERLIN_UP} 
        FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation 
        {$ENDIF} 
        FMX.ActnList; 
    

    est modifié pour

    {$IFDEF DELPHIX_BERLIN_UP} 
        FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation 
        {$ENDIF} 
        FMX.ActnList, FMX.ComboEdit, FMX.ScrollBox, FMX.Controls.Presentation; 
    

    conduisant à une erreur du compilateur:

    E2004: Identifier redeclared: FMX.ComboEdit ... 
    
+0

De toute façon, vous ne devriez pas avoir beaucoup de code dans une unité de formulaire, donc avoir des formulaires doubles pour les différentes versions semble plus facile à maintenir. Le FMX évolue encore et peut-être un jour il se stabilisera et sera rétrocompatible. –

+1

Non, il n'est pas possible d'empêcher l'IDE d'effectuer ces modifications. Il n'est pas au courant de vos conditions (le '{$ IFDEF ...}'), parce que ce sont pour le compilateur et pas l'IDE. Les versions récentes de FMX ont déplacé beaucoup de définitions, et ce qui était dans un endroit dans XE4 peut être ailleurs (et même implémenté totalement différemment) dans XE5 ou plus tard. –

+0

@LURD Je ne suis pas d'accord. Avoir des formulaires doubles n'est pas vraiment une option pour un projet réel (même avec presque aucun code dans l'unité de formulaire). –

Répondre

3

Is it possible to tell Delphi not to do these modifications?

Non, ce n'est pas le cas. Les fichiers DFM/FMX sont gérés par l'IDE et spécifiques à la version, et l'ont toujours été. Vous devez conserver des fichiers DFM/FMX distincts pour chaque version IDE.

Il est généralement OK pour laisser un ancien IDE avertir et ignorer les propriétés ajoutées par un nouvel IDE. Et il y a des outils tiers qui circulent et qui vont supprimer les nouvelles propriétés d'un fichier DFM/FMX avant de l'ouvrir dans un ancien IDE.