Gambas France BETA


Pas de compte ? Incription

Son Contrôle :

Création de son Propre Contrôle :



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, le formulaire de la Calculatrice++.
Sur le répertoire sources, clique droit puis Importer et naviguer jusqu'à l'endroit de rangement du projet Calculatrice++.



Après votre importation, 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.

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. (pensez à changer FrmCalcul par le nom donné à votre importation)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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

Le $hCalculatrice.Resultat est bien sûr déclaré et alimenté dans Calculatrice++ ou plus exactement, ici frmCalcul.
1
2
3
IF NOT IsNull($fValeur[$i - 2]) OR NOT IsNull($fValeur[$i - 1]) THEN '<---- pour impression quelconque Résultat
$sTransfText = Str($fValeur[$i - 2]) & " " & $signe & " " & Str($fValeur[$i - 1]) & " " & "=" & " " & Str($fValeur[$i]) & gb.CrLf '<-le résultat
ENDIF


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

Si vous voulez attribuer une icône à ce nouveau contrôle, dans le répertoire Projet, ajouter un nouveau répertoire nommé "control" et glisser dedans une icône désirée que vous renommez du nom de la nouvelle Class (en PNG), ici, par exemple Class1.png



Lancer votre projet, la calculatrice apparaît bien à l'écran comme si vous aviez lancé le projet Calculatrice++ mais là c'est 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.

On peut, aussi, ajouter une Class2 qui hériterait de la Class1 :
1
2
EXPORT
INHERITS Class1
et placer cette nouvelle Class2 dans notre formulaire.

Contrôle par Contrôle

====================

Navigation :



<-- Liens du Wiki : <--
<-- Accueil du WIKI : <--
<-- Créer une Interface : <--

====================

Documentation :



==================