Gambas France BETA


Pas de compte ? Incription

Astuce de plugin

1
AuteurMessages
Flachy Joe#1 Posté le 11/5/2017 à 21:04:32
Iguane : Il Gambas Uniquement pour Activer ses NEuronesSalut tous,
j'ai remis le nez dans mon histoire de plugin (qui date de 2012 aaaarg ! ) http://www.gambasforge.org/code-55-application-modulaire--des-plugins-pour-votre-appli.html

Je suis en train de coder un "Calendrier du Jardinier" (en gros c'est juste un liste de trucs à faire et un historique de ce qui a été fait) dans lequel je souhaiter afficher la météo récupérée depuis un site web. Comme je ne veux pas me limiter à une source de météo, j'ai prévu d'inclure ça sous forme de plugin, et, on arrive enfin à l'objet de cette discussion, j'ai trouvé une astuce pour intégrer le design et les fonctionnalités issu d'un formulaire d'un autre exécutable gambas à l’intérieur de la fenêtre principale de mon appli.

En clair ça signifie qu'on peut coder le plugin comme une appli normale, avec des contrôles dans un formulaire, des actions sur ces contrôle et charger dynamiquement l'ensemble de ce truc dans une autre appli.

L'astuce tiens dans la méthode Reparent qu'ont tous les contrôles, on charge le formulaire issu du plugin et on "reparente" ses contrôle dans le formulaire de l'application hôte. Les événements des contrôles restent géré par la classe du formulaire.

Il y a quelques limitations quand même :
pour avoir un événement de chargement il faut utiliser un timer a événement unique puisque le formulaire en lui même n'est jamais affiché
on ne peux utiliser dans le plugin que des composants qui sont aussi chargés dans l'appli hôte
il faut avoir une convention de nommage pour repérer le formulaire à utiliser.
et il faut faire attention de ne pas avoir de doublon dans le nom des classes

Mais ça marche :
Le formulaire du plugin en création (on aperçoit le nommage particulier de ce formulaire et l’existence d'un autre formulaire qui gère des options)

et le résultat dans l'appli hôte, la combobox est remplie au lancement avec les plugins trouvés


Voila voila, si j'arrive à m'en dépatouiller je posterai prochainement dans la forge un composant pour charger des plugins. En attendant, si vous avez besoin d'info sur le sujet, je suis dispo. Mon calendrier du jardinier aussi ira sur la forge quand il sera un peu plus avancé.

++
;) Flachy Joe ;)
Flachy Joe#2 Posté le 13/5/2017 à 23:33:23
Iguane : Il Gambas Uniquement pour Activer ses NEuronesÇa y est, le composant pour charger des plugin fonctionne, il y a encore des améliorations à apporter mais on peut déjà rire un peu.
Le composant et des exemples ici : http://www.gambasforge.org/code-163-pluginloader.html
;) Flachy Joe ;)
1