gambaslinux

Aides aux utilisateurs de gambas linux

Retournez à Accueil /

Mon Contrôle :

0

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++. 

Donnez lui un nom significatif genre frmCalcul ou autre.

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.

Rédigé par valaquarus
Unus Ex Altera

Écrire un commentaire

Quelle est le sixième caractère du mot iux02sf ?