Donnez votre avis..
INTERFACE GAMBAS
LOGICIELS GAMBAS 3
TUTORIELS
=Bibliothèque
|
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 Réactions à cet article
| ACCES RAPIDE
RECHERCHE
LES INSTRUCTIONS
LES COMPOSANTS
Divers
INSTRUCTIONS
Où ça, qui ça?
VISITES
visiteurs visiteurs en ligne ARCHIVES GAMBAS 1/2
|