• Aucun résultat trouvé

Deux méthodes de programmation sont possibles dans WinDev : • Programmation procédurale

• Programmation Orientée Objet (POO)

Les deux méthodes peuvent se mixer dans un même programme développé avec WinDev.

3.4.1 Programmation procédurale

La programmation procédurale s’appuie sur la création et l’appel de procédures et de fonctions. Une procédure ne retourne pas de résultat.

Une fonction retourne un résultat.

Création de procédures locales

Les procédures locales peuvent être créées de plusieurs façons : Depuis l'éditeur de code :

• soit par l'option "Insertion .. Nouvelle procédure locale" (raccourci clavier [F4]).

• soit dans le menu contextuel (clic droit de la souris), option "Créer une procédure locale". Depuis le volet "Code", option "procédures locales" : ouvrez le menu contextuel (clic droit de la sou- ris) et sélectionnez l'option "Nouvelle procédure locale".

Création de procédures globales

Les procédures globales peuvent être créées de plusieurs façons. Depuis l'éditeur de code :

• soit par l'option "Insertion .. Nouvelle procédure globale" (raccourci clavier [Shift] [F4]). • soit dans le menu contextuel (clic droit de la souris), option "Créer une procédure globale". Depuis le volet "Code", option "procédures globales" : ouvrez le menu contextuel (clic droit de la souris) et sélectionnez l'option "Nouvelle procédure globale".

Portée des procédures

La procédure peut être :

• locale : ce type de procédure est utilisable dans tous les traitements dépendant de l'objet (fenêtre ou état) dans lequel cette procédure a été déclarée.

• globale : cela signifie qu’elle est utilisable dans tous les traitements du projet. Les procédures globales sont stockées dans des collections de procédures.

Affichage de la liste des procédures

Il est possible d'afficher la liste des procédures globales en sélectionnant l'option "Affichage .. Procé- dures globales" (raccourci clavier [Ctrl] [F8]) de l'éditeur de code.

Passage de paramètres à une procédure

Il est possible de passer des paramètres à une procédure. Lors de l'appel d'une procédure, les paramètres peuvent être :

• passés par variable (adresse) • passés par valeur

• un champ, une fenêtre ou un état

Collections de procédures

Une collection de procédures permet de :

• partager des procédures globales entre plusieurs développeurs, pour un même projet • partager des procédures globales entre plusieurs projets

• bloquer uniquement cette collection lors de modifications apportées dans une procédure globale • modifier une ou plusieurs procédures globales même si le projet est en cours de modification par un autre utilisateur

Surcharge de procédure

Il est possible de définir deux procédures de même nom dans des collections de procédures différentes utilisées par le même projet.

Pour accéder à une de ces procédures, il suffit de préfixer le nom de la procédure par le nom de la col- lection de procédures à utiliser.

Par exemple, pour utiliser la procédure "Affiche" de la collection de procédures "Ecran", il suffit d'écrire : Ecran.Affiche().

Traitements des collections de procédures

Comme une fenêtre ou un projet, une collection de procédures peut posséder : • ses propres variables globales

• ses propres constantes

• son propre traitement de déclaration de globales • son propre traitement de terminaison

Pour accéder à une variable globale d'une collection de procédures depuis le projet, il suffit de pré- fixer le nom de la variable par le nom de la collection de procédures.

Par exemple :

macollection.mavariable

Procédure automatique

Les procédures (locales et globales) peuvent être automatisées. Il suffit de configurer les options d’automatisme de la procédure.

3.4.2 Programmation Orienté Objet (POO)

La programmation orientée objet (appelée "POO") est une méthode de programmation dans laquelle les programmes sont organisés comme des ensembles d'objets.

Chaque objet représente une instance d'une certaine classe, toutes les classes étant des membres d'une hié- rarchie de classes unifiée par des relations d'héritage.

Le WLangage supporte la Programmation Orientée Objet, en effet :

Les classes

Une classe est composée de : • données, appelées membres • constantes

• procédures, appelées méthodes. Une méthode est une procédure spécialement écrite pour mani- puler les objets de la classe

Pour utiliser une classe, il faut déclarer un ou plusieurs objets. Tous les objets d'une classe donnée sont identiques par leur forme et leur comportement, mais leurs membres contiennent des données différentes.

Déclaration de l’objet et instanciation

L’objet doit être déclaré comme étant de la classe à manipuler. Il s’agit de l’instanciation d'un objet.

Exemple de déclaration :

FichierSource est un objet Fichier FichierSource est un Fichier

Il est possible d'instancier dynamiquement un objet à une classe

Déclaration d’un membre

Un membre est également appelé propriété de l'objet.

Les méthodes d’un objet

Les méthodes d'un objet sont des fonctionnalités associées à l'objet.

Par défaut, lors de la création d'une classe sous l'éditeur de code de WinDev les méthodes "Construc- teur" et "Destructeur" sont automatiquement créées.

Durée de vie de l’objet

L'objet est créé lors de sa déclaration.

L'objet est automatiquement détruit à la fin du traitement contenant sa déclaration.

Héritage de classe

L'organisation hiérarchique en classes et sous classes conduit au concept d'héritage.

L'héritage est le mécanisme par lequel la classe en cours de description utilise les méthodes et les membres définis dans les classes existantes.

La classe existante est appelée Classe ancêtre. La nouvelle classe est appelée Classe dérivée.

La Classe dérivée englobe la classe ancêtre et y ajoute de nouvelles méthodes et de nouveaux membres Un héritage peut être :

• multiple : la classe dérivée peut être dérivée de plusieurs classes ancêtres.

• privé : seules les méthodes de la classe dérivée peuvent accéder aux méthodes et aux membres hérités.

• public (par défaut) : il est possible d'accéder aux méthodes et aux membres hérités depuis l'exté- rieur de la classe.

Le WLangage permet également de décrire des méthodes virtuelles.