Certains petits outils migrent sans qu'il soit nécessaire d'apporter des modifications, ou bien il suffit d'apporter quelques corrections à l'unicode pour qu'ils fonctionnent.
Cependant, si votre base de code est aussi énorme que vous l'expliquez, vous ne devriez pas vous fier complètement à ce que quelqu'un ici va vous dire. Obtenez simplement une copie de XE et chargez le code. Voyez quels sont les problèmes que vous rencontrez pour avoir une idée de l'effort que cela va vous demander.
Pour l'instant, j'ai porté tout mon code vers XE (même les anciens projets). Je réutilise les mêmes bibliothèques autant que possible, donc une fois que j'ai converti la plupart d'entre elles, le "portage" des applications de Delphi 7 vers Delphi Unicode n'était généralement qu'une tâche répétitive pour traiter les interfaces mises à jour dans les bibliothèques, ou pour corriger les erreurs et les avertissements du compilateur.
Les erreurs les plus courantes que j'ai rencontrées :
-
Des trucs Unicode. Cela prendra 90% du temps. C'est ennuyeux si le code fait beaucoup de manipulation de chaînes de caractères de bas niveau, mais la plupart des problèmes peuvent être facilement corrigés en ajoutant quelques typescasts.
-
le compilateur râle quand on utilise c in ['a'..'z']
. Vous êtes censé utiliser CharInSet()
pour les chaînes unicode.
-
Si vous définissez ShortDateFormat, vous obtiendrez un avertissement du compilateur indiquant que vous devez utiliser FormatSettings.ShortDateFormat à la place. Dans un nouveau code, c'est une bonne idée. Dans le cas d'un portage, ignorez-le si vous souhaitez simplement vous lancer.
En outre, vous mettrez probablement à niveau vos bibliothèques tierces vers des versions plus récentes, afin de ne pas avoir à les porter vous-même. Il n'est pas rare que ces bibliothèques aient changé d'interface ou de fonctionnement. Je téléchargerais donc quelques versions d'essai de ces bibliothèques pour voir ce qui a été modifié.