Pourquoi tu veux nous parler de famille ?
Non, non. Le concept de parent/enfant est aussi utilisé en informatique.
Je vais justement vous l'exposer sommairement ici.
Partie théorique, allez vous chercher un café et détendez-vous.
Programmation orientée objet
La notion de parent/enfant est à l'origine utilisée en Programmation Orientée Objet (abréviée POO).
La POO est un style de programmation de plus en plus répandu. Certains langages ne sont pas orientés objets, d'autres y sont totalement. Notre langage, VB.NET utilise énormément la notion d'orienté objet.
Le langage VB6, quant à lui ne prenait pas en charge les concepts de la POO
Concrètement que nous apporte cette notion de POO ?
Eh bien si vous voulez avoir plus de détail concernant la POO je vous renvoie sur
un chapitre du tutoriel sur le C++ de M@teo21 qui explique très bien les concepts d'objets.
Pour faire simple : on a introduit la notion d'objet pour pouvoir gérer plus facilement les gros programmes. Par exemple, dans nos programmes, les fenêtres sont toutes des objets bien distincts. Lorsque nous voudrons agir sur une fenêtre en particulier, il nous suffira de manipuler son objet.
Bon, j'essaie de suivre mais pourquoi nous racontes-tu ça ?
Eh bien maintenant que je vous ai fait peur avec les Objets

, je vais vous parler des relations parent/enfant qui s'applique sur les objets.
L'héritage
Cette notion a été introduite avec la notion d'
héritage.
L'héritage existait bien avant l'informatique ...
Mais moi je vous parle de l'héritage en informatique. C'est un concept qui s'applique aux objets.
Imaginez que vous avez un objet de type
instrument (eh oui, un objet peut être n'importe quoi du moment que vous le codez), cet objet va avoir des variables et des fonctions qui lui seront spécifiques (les notes qu'il est capable de jouer, la fonction "joue", etc ...).
Si je crée un autre objet de type
guitare, vous voyez tout de suite qu'une guitare est un instrument, donc au lieu de recréer toutes les fonctions et variables qui existaient pour l'objet
instrument, je vais faire
hériter ma
guitare de
instrument.
Ouch ?
Voici un petit schéma :
Donc, les rectangles sont chacun des objets. Vous voyez l'objet
Instrument, l'objet
Guitare et l'objet
Piano.
L'objet
Guitare et
Piano héritent tout les deux de l'objet
Instrument.
Donc, la
Guitare aura en plus de ses possibilités originelles (qui sont NbCordes et Vibrato()) celles de
Instrument (qui sont Notes et Joue()). Pareil côté
Piano.
Parent/enfant
Je crois comprendre. Pourquoi nous expliques-tu cela ?
Eh bien, vous voyez que si je détruis l'objet
Instrument les objets qui en héritent (autrement dit Guitare et Piano) seront également détruits. Dans ce cas
Instrument est le
parent et
Guitare et
Piano sont les
enfants.
Donc lorsqu'un parent est détruit ses enfants le sont également.
J'en viens donc à notre problème actuel : les fenêtres.
Lorsque je lance mon programme, la première fenêtre, ici le Main est considéré comme la fenêtre
parent. et donc toutes les fenêtres supplémentaires crées seront ses
enfants.
Si vous avez suivis ce que j'ai expliqué, si je ferme donc la fenêtre Main, les autres fenêtres se fermeront également.
Donc il va falloir bien faire attention à ça dans nos programmes. Ne pas fermer la fenêtre principale !
Et si je ne veux pas la voir ?
Et bien il vous suffit d'effectuer un
Visible = false sur cette dernière (j'ai dit que c'est pas bien mais ici vous êtes obligés). Mais attention avec ça, c'est pas le tout de cacher la fenêtre et de ne jamais pouvoir la ré-afficher.
Bon, avec toutes ces nouvelles notions nous allons pouvoir attaquer la communication entre fenêtres.
Vous pouvez ré-ouvrir les yeux, le cauchemar est terminé.