1 | |||||||||||||
Auteur | Messages | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Flachy Joe | #1 Posté le 9/2/2012 à 19:53:19 | ||||||||||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | Salut, Je vous propose de discuter ici des possibilités et de l'intérêt du développement d'application modulaire en Gambas3. I. Quéçkeussé ?Une application modulaire est un programme dont les fonctionnalités peuvent être augmentées/modifiées par l'ajout de plugins, ils ne sont pas indispensable à l'exécution.II. Proposition de codeJe me suis penché sur la possibilité d'ajouter une référence à un composant externe lors de l'exécution. Tout est ici programmé en Gambas3.1. Ajouter dynamiquement un composantCe code permet de parcourir le répertoire de l'application et d'insérer les plugins trouvées :
2. Référence dynamique à une classePour qu'une classe soit référenciable à l'exécution, elle doit être reconnaissable par son nom, j'ai choisi ici de préfixer les classes des plugin par "export". Ce code crée une instance de chaque classe exportée de chaque plugin :
3. Programmation du moduleS'il n'y a pas d'héritage, la programmation du module ne pose aucun problème, voici un exemple de module, ce code est celui de la class exportSample de l'application SamplePlugin, qui sera compilée dans "SamplePlugin.plugin" :
Exemple plus utile : ajout d'un bouton sur une fenêtre à partir d'un plugin- Dans l'application principale : Soit un formulaire Form1 contenant un bouton Button1, qui fait ce que vous voulez mais dont la propriété Public=True. Soit un module MainModule qui est défini comme classe de démarrage. Code de MainModule :
- Dans le plugin On coche gb.gui dans la liste des composants à charger (Sinon ça ne se compilera pas à cause des références à Form et Button). Soit une classe exportMonBouton dont voici le code :
Pour aller plus loinIl est intéressant de noter que si la classe Class1 de l'application principale est exportée, on peut y accéder depuis le plugin avec la syntaxe
Flachy Joe | ||||||||||||
manu | #2 Posté le 10/2/2012 à 08:09:35 | ||||||||||||
Avec Gambas ca roule ! | Salut FlachyJoe, TRES intéressant ces bouts de code. J'en rêvait, tu l'as fait Mais il faut mettre ça dans la forge (même si tu ne télécharge pas d'application). Dans le forum, ça va ce perdre avec le temps, ce sera toujours plus facile à retrouver dans la forge que dans le forum. Il y à une section composant faite exprès pour ça. Merci de le faire s'il te plais (autrement c'est moi qui le fait ! ). Manu Jeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) | ||||||||||||
Flachy Joe | #3 Posté le 10/2/2012 à 08:54:36 | ||||||||||||
Iguane : Il Gambas Uniquement pour Activer ses NEurones | C'est fait à cette adresse : http://gambasforge.org/code-55-application-modulaire--des-plugins-pour-votre-appli.html Cette discussion peut donc être supprimée. Flachy Joe | ||||||||||||
manu | #4 Posté le 10/2/2012 à 10:10:43 | ||||||||||||
Avec Gambas ca roule ! | ok merci Jeanne d'arc, elle a frit, elle a tout compris ! Config : Manjaro linux (excellent !) XFCE 4.1 (simple et efficace) Gambas 3 dans les dépots (confort total) | ||||||||||||
spheris | #5 Posté le 21/11/2020 à 20:56:42 | ||||||||||||
Bonsoir Flachy, Je ressors un vieux topic mais j'ai besoin de plus d'informations : Les plugin sont bien préchargé dans l'application. Mais comment les utiliser? Exemple : Ce plugin avec le code exportmonbouton, je veux pouvoir afficher le pluginbouton dans une form nommée Form2. Comment faire? | |||||||||||||
1 |