WIDGETS GAMBAS
LOGICIELS GAMBAS 3
TUTORIELS
VISITES

   visiteurs

   visiteurs en ligne

Où ça, qui ça?
Creation composant - Diode
CREATION D'UN COMPOSANT POUR GAMBAS 3

Pour créer un composant il faut déja bien comprendre la Programation Orientée Objet (POO) : public private, create, etc... enfin tout ce qui à trait à la programmation objet et à la notion d'héritage.

A) Petits rappels de POO

'Class Quadrupede

Property NbrePate
Property Longueurqueue


'Class chien
Inherit quadrupede

Property race
property couleur

Donc au final la classe chien

chien.Nbrepate
chien.LongueurQueue
chien.race
chien.couleur


C'est comme pour les conteneurs, tu crée un projet console et dedans tu y met deux ou trois classes et tu vois comment elle
réagissent entre elles. Tu peux avoir une classe héritière qui surcharge une propriété du parent ... simplement en utilisant le même nom :

par exemple si je fait

'Class monlabel
Inherit Label

Property Text as string

Private Sub Text_Read() as String

return SUPER.Text & toto

end

Private Function Text_Write(Value as string)

SUPER.Text = Value

end

en gros j'ai détourné la propriété texte de label ... Super permet d'appeller une proprété de la classe parente.

Donc quand je fait label.text = "titi"

print label.text
donne
tititoto

mdr

ça sert a rien mais j'explique :



Parfois on veut pouvoir appeler une classe sans l'instancier :
j'instancie avec New

hmyClass = new Myclass

en mettant Create Static en entête, on peut faire comme avec report

report.mafonction

car en fait, Gambas instancie un report et le réaffecte a la variable report. donc report passe de classe a variable instanciée.

c'est quoi une instance ? C'est une copie de travail en mémoire. On peu avoir autant d'instances d'une classe qu'on veut. Un module est une classe dont tout les éléments sont static... donc non instanciable et accessible depuis maclass.mafonctionstatique

je l'utilise dans gb.report pour par exemple pour stocker les références de tout les objets dans une collection

ainsi j'appelle report._collection[valeur]

ou _collection est déclarée static.public

le _ sert a dire que je veut que cette fonction soit cachée dans l'ide... et oui il y a plein de truc caché ... utilisable mais simplement masqué car risqué pour une utilisation directe. ou simplement pour ne pas charger l'interface...

Enfin tout ça pour dire qu'il faut tester toute les variantes et voir comment ça s'articule.



B)Premier Composant :

Bien voici la première démo de composant entièrement commentée : Diodes



il manque juste deux ou trois points

-1- Pour indiquer au projet que c'est un composant il faut lui dire dans les propriétés générale du projet ctrl+p. Ensuite il faut lui dire qu'il à besoin des composants graphiques (gb.gui ou gb.qt4 ou gb.gtk)

(tout ceci est déjà fait dans l'exemple)

-2- Ensuite pour pouvoir pleinement testé le composant et même l'utiliser dans d'autres projet : faire générer l'exécutable (ne pas le générer dans le dossier du projet !) et cocher la case installer le composant...
faire ok et la miracle le contrôle apparait dans la barre des outils .
Il ne reste plus qu'a s'en servir.


Attention : le composant est installé en local. (donc dans le dossier /home/user...)

voila ...

C) Différence entre un composant et un contrôle.

Un contrôle est un type de classe... dans cet exemple j'ai expliqué comment faire un composant graphique... ce qui n'est pas le cas pour gb.chart ou gb.report car ils dessinent sur le device fournit par la classe paint.

Un composant est un ensemble de classes ou de contrôles.

gb.qt est un composant qui contient par ex :, button ou listbox sont des controles, timer est une classe utilisable comme controle, paint est une classe.

Date de création : 08/04/2010 @ 22:44
Dernière modification : 15/05/2011 @ 12:59
Catégorie : Creation composant
Page lue 4246 fois


Imprimer l'article Imprimer l'article


react.gifRéactions à cet article


Réaction n°2 

par didier18 le 22/05/2016 @ 09:08

Bonjour Spheris

Pour l'installation du composant, tu dis :"faire générer l'exécutable (ne pas le générer dans le dossier du projet !) et cocher la case installer le composant...".
Ne pas générer dans le dossier du projet,  je veux bien mais pourquoi ?
Ou se trouve la case à cocher installer le composant (gambas3_3.8.4) ? 
Merci.Bonne journée.

Réaction n°2 

par spheris le 13/02/2011 @ 18:52

Helloworld, as-tu essayé de télécharger l'exemple diode sur la page? Que n'as-tu pas compris ?
J'ai rien compris ,c'est un peu vague, ne trouves-tu pas ?
wink

ACCES RAPIDE
RECHERCHE




LOGICIELS GAMBAS 2
LES INSTRUCTIONS
LES COMPOSANTS
Divers

^ Haut ^