Complément d'informations pour la dérivation

Les fichiers nécessaires pour dériver un composant

Il n'est pas nécessaire de disposer des sources L4G d'un composant de base pour pouvoir le dériver. Il faut cependant disposer de la définition des objets que l'on dérive et de la liste des fonctions exportées du composant de base. Comme le traducteur d'Oxygène++ convertit les sources L4G en classes C++, les informations nécessaires sont disponibles dans les fichiers intermédiaires issus des étapes de compilation.

Les fichiers nécessaires à l'exécution sont les suivants :

  • la DLL (Dynamic Link Library) associée au composant

  • le global (.GLB) associé au composant

Les fichiers nécessaires à la génération sont les suivants :

  • Les fichiers "header" d'extension .hpp (ou .h)

  • Le fichier .lib qui fournit la liste des fonctions exportées (static library)

En général un composant dérivable fournit également ses ressources (écrans, états, menus, bitmaps, icônes, etc…) et le projet qui à permis de le générer.

La configuration du projet du composant dérivé

Le développement d'un logiciel sous forme de composants modifie sensiblement l'organisation du projet et des sources sur le disque. A l'expérience, nous vous conseillons de prévoir un répertoire propre au logiciel et un sous-répertoire pour chaque composant qui le compose. Chaque composant contiendra lui-même des sous-répertoires destinés à regrouper les sources et ressources par nature. On aura donc un répertoire GLOBAL pour chaque composant.

La configuration de la redirection des appels aux composants

Nous l'avons vu, la dérivation d'un composant passe par un mécanisme de redirection des appels aux méthodes publiques. Ce mécanisme de redirection n'est pas automatique. Il doit être défini dans la table COMPOSANTS ;de la base $$ (base du système).

  • En phase de développement, cette table peut être directement mise à jour grâce à l'utilitaire intitulé "Saisie de données" du menu du développeur. Il suffit d'indiquer le nom de la DLL de base et le nom de la DLL qui en dérive ou qui la remplace, puis de redémarrer Oxygène++.

  • En phase finale, c'est-à-dire au moment de l'installation en clientèle, cette table peut être directement mise à jour par le scénario d'installation. Il suffit pour cela de l'incorporer à la liste des tables à installer en prenant soin de ne pas écraser les données existantes.