GB3- Créer un contrôle.( Temps de lecture estimé à 2 min 26 sec )
Ou comment créer un contrôle à partir d'un formulaire existant :
Prenons appui sur un exemple existant dans la forge : Calculatrice++
Dans un nouveau projet que vous nommerez comme vous l'entendez importez dans les sources (dans l'IDE, cliquer droit sur le répertoire sources, Importer et naviguer jusqu'à l'endroit de rangement du projet), le formulaire de la Calculatrice++.
Ceci fait, cliquer droit sur le répertoire sources, nouveau, Classe.
Dans la fenêtre, changer le nom proposé puis cocher la case Exportée et valider.
Une nouvelle classe portant le nom choisi s'est ouverte dans l'IDE, ne contenant que le mot Export.
Pour pouvoir récupérer ce contrôle nous devons ajouter d'où il provient, ajouter juste cette ligne : Inherits UserControl
Maintenant, avant d'aller plus loin, nous devons compiler ce projet pour faire apparaître ce contrôle dans la liste de ceux existants. (Alt+F7)
Vérifiez que vous avez bien celui-ci dans la liste (en bas à droite de l'IDE) en vous plaçant sur le formulaire précédemment importé.
Nous allons, l'alimenter pour utiliser ce nouveau contrôle, par ce qui suit : (pensez à changer FrmCalcul par le nom donné à votre importation)
' Gambas class file Export Inherits UserControl '<--------------------------------------------- héritage des propriétés de UserControl Private $hCalculatrice As FrmCalcul '<------------------------------ à partir du contrôle FrmCalcul Private $Obs As Observer '<--------------------------------------- déclaration d'un observer Property ResultCalc As String '<---------------------------------- propriété pour récupérer le résultat de frmCalcul Public Sub _New() '<------------------------------------------------ instanciation $hCalculatrice = New FrmCalcul(Me) '<-------------------------- instanciation de l'objet à partir de FrmCalcul $Obs = New Observer(Me) As "Obs" '<------------------------------ instanciation observer pour récupérer les évènements End Private Function ResultCalc_Read() As String '<--------------------- définition de la propriété ResultCalc Return $hCalculatrice.Resultat End Private Sub ResultCalc_Write(Value As String) '<--------------------- définition de la propriété ResultCalc $hCalculatrice.Resultat = Value End
Voilà notre nouveau contrôle est prêt à l'emploi et nous allons de ce pas créer un nouveau formulaire qui pourra le recevoir.
Je propose de choisir un nom bateau car il ne s'agit que de tester notre contrôle, genre frmTest (frm pour formulaire).
Si vous le voulez, vous pouvez ajouter un bouton pour quitter (btnQuitter).
Sélectionner votre contrôle et insérer le dans le formulaire, comme vous l'auriez fait pour un bouton.

Lancer votre projet, la calculatrice apparaît bien à l'écran comme si vous aviez lancé le projet Calculatrice++ mais là c'est bien votre contrôle.

L'intérêt, aucun, sauf celui pédagogique et celui de montrer qu'il est possible de réutiliser un vieux programme en l'insérant dans un nouveau comme contrôle ou comment faire de la récup..
On peut, juste pour le fun, ajouter une Class2 qui hériterait de la Class1 :
' Gambas class file Export Inherits Class1
Et la placer dans notre formulaire à la place de la Class1. Et ainsi de suite,... je n'ai pas testé l'instant où tout explose.


