Basculement dynamique de DLL de ressources
Remonter à Utilisation des DLL de ressources
En plus de la localisation d'une DLL de ressource au démarrage de l'application, il est possible de basculer les DLLs de ressource dynamiquement à l'exécution.
Par exemple, le code suivant bascule la langue de l'interface en Français :
const
FRENCH = (SUBLANG_FRENCH shl 10) or LANG_FRENCH;
if LoadNewResourceModule(FRENCH) <> 0 then
ReinitializeForms;
const FRENCH = (SUBLANG_FRENCH << 10) | LANG_FRENCH;
if (LoadNewResourceModule(FRENCH))
ReinitializeForms();
L'avantage de cette technique est que l’instance en cours de l'application et de toutes ses fiches sont utilisées. Il n'est pas nécessaire de mettre à jour les paramètres du registre et de redémarrer l'application ou de ré-acquérir les ressources nécessaires à l'application, comme la connexion aux serveurs de bases de données.
Lorsqu'il y a basculement de la DLL de ressource, les propriétés spécifiées dans la nouvelle DLL écrasent celles des instances en cours d'exécution des fiches.
Remarque : Toute modification effectuée dans les propriétés d'une fiche à l'exécution est perdue. Une fois que la nouvelle DLL est chargée, les valeurs par défaut ne sont pas réinitialisées. Evitez le code qui suppose que les objets fiche sont réinitialisés à leur état de démarrage, mise à part les différences dues à la localisation.