SlideShare a Scribd company logo
1 of 6
Download to read offline
LES COLLECTIONS – EXERCICE
EXPLOITER DES OBJETS DANS LA COLLECTION CONTROLS
SCÉNARIO
Dans les exercices à venir, vous allez utiliser du code pour manipuler des objets sur un
formulaire en utilisant la collection Controls. Votre projet possèdera trois objets boutons.
Vous allez créer des procédures événementielles qui modifient les propriétés Text de
chaque objet, déplacer des objets vers la droite et accorder un traitement spécial à un objet
du groupe. Le programme exploitera trois boucles For Each...Next pour manipuler les
objets chaque fois que l’utilisateur cliquera sur un des boutons.
UTILISER UNE BOUCLE FOR EACH...NEXT POUR MODIFIER DES PROPRIETES TEXT
1. Créez un nouveau projet Visual Basic Application Windows Forms intitulé Ma
Collection Controls.
2. Utilisez le contrôle Button pour dessiner trois objets bouton à gauche du formulaire
Form1, puis élargissez-les à environ 124 pixels, comme suit :
3. Utilisez la fenêtre Propriétés pour définir la propriété Name du troisième objet
bouton (Button3) à « btnMoveObjects ».
4. Dans le formulaire, double-cliquez sur le premier objet bouton (Button1). La
procédure événementielle Button1_Click s’affiche dans l’Éditeur de code.
5. Tapez les instructions suivantes :
For Each ctrl In Controls
ctrl.Text = "Cliquez sur moi !"
Next
Cette boucle For Each...Next parcourt la collection Controls contrôle par
contrôle et définit la propriété Text de chaque contrôle à « Cliquez sur moi ! ».
La boucle utilise ctrl comme variable d’objet dans la boucle, que vous déclarerez à
l’étape suivante.
6. Défilez vers le haut du code et tapez le commentaire et la déclaration de variable
suivante, juste en dessous de l’instruction Public Class Form1 :
'Déclare une variable de type Control pour représenter les contrôles
du formulaire
Dim ctrl As Control
Cette déclaration de variable globale crée une variable dans le type de la classe
Control qui représente les contrôles du formulaire en cours dans le programme. Vous
déclarez cette variable dans la zone des déclarations générales du formulaire afin
qu’elle soit valide dans toutes les procédures événementielles du formulaire.
Vous voilà prêt à exécuter le programme et à modifier la propriété Text de chaque
bouton du formulaire.
7. Dans la barre d’outils Standard, cliquez sur le bouton Démarrer le débogage.
8. Dans le formulaire, cliquez sur le premier bouton (Button1).
La procédure événementielle Button1_Click modifie la propriété Text de chaque
contrôle dans la collection Controls. Votre formulaire présente un résultat similaire
à:
9. Cliquez sur le bouton Fermer du formulaire. Le programme s’interrompt.
Remarque
Les changements apportés à la propriété Text par le programme n’ont pas été répliqués dans le
formulaire au niveau du Concepteur. Les changements effectués à l’exécution n’affectent pas les
principaux paramètres de propriété du programme.
10. Dans la barre d’outils Standard, cliquez sur le bouton Enregistrer tout pour
enregistrer vos changements. Désignez un dossier de votre choix comme emplacement.
Vous voilà prêt à tester différemment la collection Controls. Vous allez utiliser la propriété
Left pour déplacer chaque contrôle de la collection Controls vers la droite.
UTILISER UNE BOUCLE FOR EACH...NEXT POUR DEPLACER DES CONTROLES
1. Affichez le formulaire, puis double-cliquez sur le deuxième objet bouton (Button2).
2. Tapez le code suivant dans la procédure événementielle Button2_Click :
For Each ctrl In Controls
ctrl.Left = ctrl.Left + 25
Next
Chaque fois que l’utilisateur clique sur le deuxième bouton, cette boucle For
Each...Next parcourt les objets de la collection Controls un à un et les déplace de
25 pixels vers la droite (pour déplacer des objets de 25 pixels vers la gauche, il suffit
de soustraire 25). Un pixel est une unité de mesure indépendante de tout
périphérique qui permet de positionner avec précision des objets sur un formulaire.
Astuce
Dans Visual Basic 6, on utilise normalement des twips et non des pixels comme unité de
mesure. Un twip est une unité typographique équivalente à un vingtième de point.
Comme dans la précédente procédure événementielle, la variable ctrl est une «
doublure » de l’objet en cours dans la collection, qui contient les mêmes paramètres
de propriété que l’objet qu’elle représente. Dans cette boucle, vous réglez la
propriété Left, qui détermine l’emplacement d’un objet par rapport au côté gauche
du formulaire.
3. Cliquez sur le bouton Démarrer le débogage. Le programme s’exécute et les trois
boutons s’affichent à gauche du formulaire.
4. Cliquez sur le deuxième bouton à plusieurs reprises.
Chaque fois que vous cliquez sur le bouton, les objets du formulaire se déplacent
progressivement vers la droite. Voici à quoi ressemble votre écran après cinq clics :
5. Cliquez sur le bouton Fermer du formulaire pour arrêter le programme.
6. Cliquez sur le bouton Enregistrer tout pour enregistrer vos changements.
Il ne sera pas toujours indiqué de déplacer tous les objets d’un formulaire comme un
groupe. Avec Visual Basic, vous pouvez traiter individuellement les membres d’une
collection. Dans le prochain exercice, vous allez voir comment maintenir le troisième
objet bouton à sa place tout en déplaçant les deux autres boutons vers la droite.
EXPLOITER LA PROPRIETE NAME DANS UNE BOUCLE FOR EACH...NEXT
Pour traiter différemment un ou plusieurs membres d’une collection, utilisez la propriété
Name, qui identifie de manière unique chaque objet du formulaire. On peut également
l’utiliser par programmation pour identifier des objets spécifiques dans un programme.
Pour ce faire, choisissez les objets qui subiront un traitement spécial, puis notez leurs
propriétés Name. Lorsque par la suite, vous parcourrez les objets du formulaire en utilisant
une boucle For Each...Next, utilisez une ou plusieurs instructions If pour tester les
propriétés Name importantes et gérer ces objets différemment. Par exemple, supposons que
vous souhaitiez construire une boucle For Each...Next qui déplace un objet plus
lentement sur le formulaire que les autres objets. Utilisez une instruction If…Then pour
repérer la propriété Name de l’objet le plus lent, puis déplacez cet objet d’une distance plus
courte en incrémentant moins sa propriété Left que pour les autres objets.
Astuce
Pour accorder à plusieurs objets un traitement spécial dans une boucle For Each...Next, utilisez
des instructions ElseIf avec l’instruction If…Then ou servez-vous d’une structure de décision
Select Case.
Dans l’exercice suivant, vous allez tester la propriété Name du troisième objet bouton
(btnMoveObjects) pour accorder un traitement spécial à ce bouton dans une boucle For
Each...Next. Il en résultera une procédure événementielle qui déplacera les deux boutons
supérieurs vers la droite et maintiendra le bouton du bas à un emplacement fixe.
Astuce
Outre la propriété Name, la plupart des objets prennent en charge la propriété Tag. Au même titre
que la propriété Name, il s’agit d’un emplacement dans lequel vous pouvez stocker des données
chaîne à propos de l’objet. Par défaut, la propriété Tag est vide mais vous pouvez lui assigner des
informations et la tester pour identifier de manière unique les objets de votre programme que vous
souhaitez traiter différemment.
UTILISER LA PROPRIETE NAME POUR TRAITER UN OBJET DE LA COLLECTION CONTROLS
1. Affichez le formulaire et double-cliquez sur le troisième objet bouton.
La procédure événementielle btnMoveObjects_Click s’affiche dans l’Éditeur de
code. Souvenez-vous que, dans l’exercice précédent, vous avez modifié la propriété
Name de cet objet en remplaçant « Button1 » par « btnMoveObjects ».
2. Tapez le code suivant dans la procédure événementielle :
For Each ctrl In Controls
If ctrl.Name <> "btnMoveObjects" Then
ctrl.Left = ctrl.Left + 25
End If
Next
La nouvelle fonctionnalité de cette boucle For Each...Next est l’instruction
If…Then, qui vérifie si chaque membre de la collection possède une propriété Name
appelée « btnMoveObjects ». Si la boucle rencontre ce marqueur, elle passe l’objet
sans le déplacer. Notez que, comme dans les exemples précédents, la variable ctrl a
été déclarée en haut du formulaire en tant que variable de type Control avec une
portée sur l’ensemble du formulaire.
3. Cliquez sur le bouton Enregistrer tout pour enregistrer vos changements.
4. Cliquez sur le bouton Démarrer le débogage.
Le programme s’exécute et les trois objets bouton s’affichent sur le formulaire.
5. Cliquez trois ou quatre fois sur le troisième objet bouton.
Au fur et à mesure que vous cliquez, les deux objets du haut se déplacent sur l’écran.
Toutefois, le troisième bouton conserve sa place, comme ci-après :
6. Cliquez sur le bouton Fermer du formulaire pour arrêter le programme.
Il peut s’avérer très utile d’accorder un traitement spécial à un objet d’une collection. Dans
ce cas, l’utilisation de la propriété Name dans la boucle For Each...Next a amélioré la
lisibilité du code, et suggère de nombreuses applications potentielles pour un programme de
jeu ou de traitement graphique. Lorsque vous utiliserez d’autres types de collections dans
Visual Basic, gardez bien à l’esprit cette propriété.

More Related Content

Similar to 06 visual basic .net - exercice sur les collections

Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
Farouk Mezghich
 
Windows Phone Workshop: Navigation and parameters
Windows Phone Workshop: Navigation and parameters Windows Phone Workshop: Navigation and parameters
Windows Phone Workshop: Navigation and parameters
Zayen Chagra
 
Cours2 structure
Cours2 structureCours2 structure
Cours2 structure
dutruch
 
Cours2 structure
Cours2 structureCours2 structure
Cours2 structure
dutruch
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
salmazen
 

Similar to 06 visual basic .net - exercice sur les collections (16)

cour-DOM-Partie6.pdf
cour-DOM-Partie6.pdfcour-DOM-Partie6.pdf
cour-DOM-Partie6.pdf
 
Les Widgets
Les WidgetsLes Widgets
Les Widgets
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4
 
PowerPoint 2010 Formation, Les Bases, L interface
PowerPoint 2010  Formation, Les Bases, L interface PowerPoint 2010  Formation, Les Bases, L interface
PowerPoint 2010 Formation, Les Bases, L interface
 
5.ateliers avancés
5.ateliers avancés5.ateliers avancés
5.ateliers avancés
 
Convertisseur Pouce en cm et cm en pixel
Convertisseur  Pouce en cm et  cm en pixelConvertisseur  Pouce en cm et  cm en pixel
Convertisseur Pouce en cm et cm en pixel
 
Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)Formation iPhone ENSI by (Orange Tunisie)
Formation iPhone ENSI by (Orange Tunisie)
 
Windows Phone Workshop: Navigation and parameters
Windows Phone Workshop: Navigation and parameters Windows Phone Workshop: Navigation and parameters
Windows Phone Workshop: Navigation and parameters
 
Cours2 structure
Cours2 structureCours2 structure
Cours2 structure
 
Cours2 structure
Cours2 structureCours2 structure
Cours2 structure
 
Cour sqlserver
Cour sqlserverCour sqlserver
Cour sqlserver
 
Gantt
GanttGantt
Gantt
 
Green System University - Development JDEdwards (French Version) - Tome3
Green System University - Development JDEdwards (French Version) - Tome3Green System University - Development JDEdwards (French Version) - Tome3
Green System University - Development JDEdwards (French Version) - Tome3
 
Action script 2
Action script 2 Action script 2
Action script 2
 
Theme 7 (suite)
Theme 7 (suite)Theme 7 (suite)
Theme 7 (suite)
 
TP_1.pdf
TP_1.pdfTP_1.pdf
TP_1.pdf
 

More from Hamza SAID

More from Hamza SAID (17)

11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net11 visual basic .net - acces aux donnees avec ado .net
11 visual basic .net - acces aux donnees avec ado .net
 
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
09 visual basic .net - modules de classes-constructeurs, encapsulation, herit...
 
09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee09 visual basic .net - exercice - liste chainee
09 visual basic .net - exercice - liste chainee
 
09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque09 visual basic .net - exercice - heritage et interfaces - primes de risque
09 visual basic .net - exercice - heritage et interfaces - primes de risque
 
08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions08 visual basic .net - debogage et gestion des exceptions
08 visual basic .net - debogage et gestion des exceptions
 
09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie09 visual basic .net - exercice - geometrie
09 visual basic .net - exercice - geometrie
 
07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note07 visual basic .net - exercice - le programme quick note
07 visual basic .net - exercice - le programme quick note
 
07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire07 visual basic .net - exercice - le programme anniversaire
07 visual basic .net - exercice - le programme anniversaire
 
06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...06 visual basic .net - les structures de donnees, les enumerations de constan...
06 visual basic .net - les structures de donnees, les enumerations de constan...
 
06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux06 visual basic .net - exercice sur les tableaux
06 visual basic .net - exercice sur les tableaux
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...05 visual basic .net - variables, procedures, arguments et structures de cont...
05 visual basic .net - variables, procedures, arguments et structures de cont...
 
04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice04 visual basic .net - les controles standard - exercice
04 visual basic .net - les controles standard - exercice
 
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...04 visual basic .net - exploitation des nouveaux controles windows forms et r...
04 visual basic .net - exploitation des nouveaux controles windows forms et r...
 
03 visual basic .net - notions de base
03 visual basic .net - notions de base03 visual basic .net - notions de base
03 visual basic .net - notions de base
 
02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net02 visual basic .net - introduction a vb .net
02 visual basic .net - introduction a vb .net
 
01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours01 visual basic .net - presentation du cours
01 visual basic .net - presentation du cours
 

Recently uploaded

Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
ikospam0
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
AmgdoulHatim
 

Recently uploaded (19)

Apolonia, Apolonia.pptx Film documentaire
Apolonia, Apolonia.pptx         Film documentaireApolonia, Apolonia.pptx         Film documentaire
Apolonia, Apolonia.pptx Film documentaire
 
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptxCopie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
Copie de Engineering Software Marketing Plan by Slidesgo.pptx.pptx
 
python-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdfpython-Cours Officiel POO Python-m103.pdf
python-Cours Officiel POO Python-m103.pdf
 
L'expression du but : fiche et exercices niveau C1 FLE
L'expression du but : fiche et exercices  niveau C1 FLEL'expression du but : fiche et exercices  niveau C1 FLE
L'expression du but : fiche et exercices niveau C1 FLE
 
Cours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiquesCours Généralités sur les systèmes informatiques
Cours Généralités sur les systèmes informatiques
 
Télécommunication et transport .pdfcours
Télécommunication et transport .pdfcoursTélécommunication et transport .pdfcours
Télécommunication et transport .pdfcours
 
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANKRAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
RAPPORT DE STAGE D'INTERIM DE ATTIJARIWAFA BANK
 
les_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhkles_infections_a_streptocoques.pptkioljhk
les_infections_a_streptocoques.pptkioljhk
 
L application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptxL application de la physique classique dans le golf.pptx
L application de la physique classique dans le golf.pptx
 
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean EudesNeuvaine de la Pentecôte avec des textes de saint Jean Eudes
Neuvaine de la Pentecôte avec des textes de saint Jean Eudes
 
Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024Echos libraries Burkina Faso newsletter 2024
Echos libraries Burkina Faso newsletter 2024
 
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
GIÁO ÁN DẠY THÊM (KẾ HOẠCH BÀI DẠY BUỔI 2) - TIẾNG ANH 6, 7 GLOBAL SUCCESS (2...
 
Formation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptxFormation qhse - GIASE saqit_105135.pptx
Formation qhse - GIASE saqit_105135.pptx
 
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
CompLit - Journal of European Literature, Arts and Society - n. 7 - Table of ...
 
Bilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdfBilan énergétique des chambres froides.pdf
Bilan énergétique des chambres froides.pdf
 
Les roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptxLes roches magmatique géodynamique interne.pptx
Les roches magmatique géodynamique interne.pptx
 
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projetFormation échiquéenne jwhyCHESS, parallèle avec la planification de projet
Formation échiquéenne jwhyCHESS, parallèle avec la planification de projet
 
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptxIntégration des TICE dans l'enseignement de la Physique-Chimie.pptx
Intégration des TICE dans l'enseignement de la Physique-Chimie.pptx
 
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
Conférence Sommet de la formation 2024 : Développer des compétences pour la m...
 

06 visual basic .net - exercice sur les collections

  • 1. LES COLLECTIONS – EXERCICE EXPLOITER DES OBJETS DANS LA COLLECTION CONTROLS SCÉNARIO Dans les exercices à venir, vous allez utiliser du code pour manipuler des objets sur un formulaire en utilisant la collection Controls. Votre projet possèdera trois objets boutons. Vous allez créer des procédures événementielles qui modifient les propriétés Text de chaque objet, déplacer des objets vers la droite et accorder un traitement spécial à un objet du groupe. Le programme exploitera trois boucles For Each...Next pour manipuler les objets chaque fois que l’utilisateur cliquera sur un des boutons. UTILISER UNE BOUCLE FOR EACH...NEXT POUR MODIFIER DES PROPRIETES TEXT 1. Créez un nouveau projet Visual Basic Application Windows Forms intitulé Ma Collection Controls. 2. Utilisez le contrôle Button pour dessiner trois objets bouton à gauche du formulaire Form1, puis élargissez-les à environ 124 pixels, comme suit : 3. Utilisez la fenêtre Propriétés pour définir la propriété Name du troisième objet bouton (Button3) à « btnMoveObjects ». 4. Dans le formulaire, double-cliquez sur le premier objet bouton (Button1). La procédure événementielle Button1_Click s’affiche dans l’Éditeur de code.
  • 2. 5. Tapez les instructions suivantes : For Each ctrl In Controls ctrl.Text = "Cliquez sur moi !" Next Cette boucle For Each...Next parcourt la collection Controls contrôle par contrôle et définit la propriété Text de chaque contrôle à « Cliquez sur moi ! ». La boucle utilise ctrl comme variable d’objet dans la boucle, que vous déclarerez à l’étape suivante. 6. Défilez vers le haut du code et tapez le commentaire et la déclaration de variable suivante, juste en dessous de l’instruction Public Class Form1 : 'Déclare une variable de type Control pour représenter les contrôles du formulaire Dim ctrl As Control Cette déclaration de variable globale crée une variable dans le type de la classe Control qui représente les contrôles du formulaire en cours dans le programme. Vous déclarez cette variable dans la zone des déclarations générales du formulaire afin qu’elle soit valide dans toutes les procédures événementielles du formulaire. Vous voilà prêt à exécuter le programme et à modifier la propriété Text de chaque bouton du formulaire. 7. Dans la barre d’outils Standard, cliquez sur le bouton Démarrer le débogage. 8. Dans le formulaire, cliquez sur le premier bouton (Button1). La procédure événementielle Button1_Click modifie la propriété Text de chaque contrôle dans la collection Controls. Votre formulaire présente un résultat similaire à:
  • 3. 9. Cliquez sur le bouton Fermer du formulaire. Le programme s’interrompt. Remarque Les changements apportés à la propriété Text par le programme n’ont pas été répliqués dans le formulaire au niveau du Concepteur. Les changements effectués à l’exécution n’affectent pas les principaux paramètres de propriété du programme. 10. Dans la barre d’outils Standard, cliquez sur le bouton Enregistrer tout pour enregistrer vos changements. Désignez un dossier de votre choix comme emplacement. Vous voilà prêt à tester différemment la collection Controls. Vous allez utiliser la propriété Left pour déplacer chaque contrôle de la collection Controls vers la droite. UTILISER UNE BOUCLE FOR EACH...NEXT POUR DEPLACER DES CONTROLES 1. Affichez le formulaire, puis double-cliquez sur le deuxième objet bouton (Button2). 2. Tapez le code suivant dans la procédure événementielle Button2_Click : For Each ctrl In Controls ctrl.Left = ctrl.Left + 25 Next Chaque fois que l’utilisateur clique sur le deuxième bouton, cette boucle For Each...Next parcourt les objets de la collection Controls un à un et les déplace de 25 pixels vers la droite (pour déplacer des objets de 25 pixels vers la gauche, il suffit de soustraire 25). Un pixel est une unité de mesure indépendante de tout périphérique qui permet de positionner avec précision des objets sur un formulaire. Astuce Dans Visual Basic 6, on utilise normalement des twips et non des pixels comme unité de mesure. Un twip est une unité typographique équivalente à un vingtième de point. Comme dans la précédente procédure événementielle, la variable ctrl est une « doublure » de l’objet en cours dans la collection, qui contient les mêmes paramètres de propriété que l’objet qu’elle représente. Dans cette boucle, vous réglez la propriété Left, qui détermine l’emplacement d’un objet par rapport au côté gauche du formulaire. 3. Cliquez sur le bouton Démarrer le débogage. Le programme s’exécute et les trois boutons s’affichent à gauche du formulaire. 4. Cliquez sur le deuxième bouton à plusieurs reprises. Chaque fois que vous cliquez sur le bouton, les objets du formulaire se déplacent progressivement vers la droite. Voici à quoi ressemble votre écran après cinq clics :
  • 4. 5. Cliquez sur le bouton Fermer du formulaire pour arrêter le programme. 6. Cliquez sur le bouton Enregistrer tout pour enregistrer vos changements. Il ne sera pas toujours indiqué de déplacer tous les objets d’un formulaire comme un groupe. Avec Visual Basic, vous pouvez traiter individuellement les membres d’une collection. Dans le prochain exercice, vous allez voir comment maintenir le troisième objet bouton à sa place tout en déplaçant les deux autres boutons vers la droite. EXPLOITER LA PROPRIETE NAME DANS UNE BOUCLE FOR EACH...NEXT Pour traiter différemment un ou plusieurs membres d’une collection, utilisez la propriété Name, qui identifie de manière unique chaque objet du formulaire. On peut également l’utiliser par programmation pour identifier des objets spécifiques dans un programme. Pour ce faire, choisissez les objets qui subiront un traitement spécial, puis notez leurs propriétés Name. Lorsque par la suite, vous parcourrez les objets du formulaire en utilisant une boucle For Each...Next, utilisez une ou plusieurs instructions If pour tester les propriétés Name importantes et gérer ces objets différemment. Par exemple, supposons que vous souhaitiez construire une boucle For Each...Next qui déplace un objet plus lentement sur le formulaire que les autres objets. Utilisez une instruction If…Then pour repérer la propriété Name de l’objet le plus lent, puis déplacez cet objet d’une distance plus courte en incrémentant moins sa propriété Left que pour les autres objets. Astuce Pour accorder à plusieurs objets un traitement spécial dans une boucle For Each...Next, utilisez des instructions ElseIf avec l’instruction If…Then ou servez-vous d’une structure de décision Select Case. Dans l’exercice suivant, vous allez tester la propriété Name du troisième objet bouton (btnMoveObjects) pour accorder un traitement spécial à ce bouton dans une boucle For
  • 5. Each...Next. Il en résultera une procédure événementielle qui déplacera les deux boutons supérieurs vers la droite et maintiendra le bouton du bas à un emplacement fixe. Astuce Outre la propriété Name, la plupart des objets prennent en charge la propriété Tag. Au même titre que la propriété Name, il s’agit d’un emplacement dans lequel vous pouvez stocker des données chaîne à propos de l’objet. Par défaut, la propriété Tag est vide mais vous pouvez lui assigner des informations et la tester pour identifier de manière unique les objets de votre programme que vous souhaitez traiter différemment. UTILISER LA PROPRIETE NAME POUR TRAITER UN OBJET DE LA COLLECTION CONTROLS 1. Affichez le formulaire et double-cliquez sur le troisième objet bouton. La procédure événementielle btnMoveObjects_Click s’affiche dans l’Éditeur de code. Souvenez-vous que, dans l’exercice précédent, vous avez modifié la propriété Name de cet objet en remplaçant « Button1 » par « btnMoveObjects ». 2. Tapez le code suivant dans la procédure événementielle : For Each ctrl In Controls If ctrl.Name <> "btnMoveObjects" Then ctrl.Left = ctrl.Left + 25 End If Next La nouvelle fonctionnalité de cette boucle For Each...Next est l’instruction If…Then, qui vérifie si chaque membre de la collection possède une propriété Name appelée « btnMoveObjects ». Si la boucle rencontre ce marqueur, elle passe l’objet sans le déplacer. Notez que, comme dans les exemples précédents, la variable ctrl a été déclarée en haut du formulaire en tant que variable de type Control avec une portée sur l’ensemble du formulaire. 3. Cliquez sur le bouton Enregistrer tout pour enregistrer vos changements. 4. Cliquez sur le bouton Démarrer le débogage. Le programme s’exécute et les trois objets bouton s’affichent sur le formulaire. 5. Cliquez trois ou quatre fois sur le troisième objet bouton. Au fur et à mesure que vous cliquez, les deux objets du haut se déplacent sur l’écran. Toutefois, le troisième bouton conserve sa place, comme ci-après :
  • 6. 6. Cliquez sur le bouton Fermer du formulaire pour arrêter le programme. Il peut s’avérer très utile d’accorder un traitement spécial à un objet d’une collection. Dans ce cas, l’utilisation de la propriété Name dans la boucle For Each...Next a amélioré la lisibilité du code, et suggère de nombreuses applications potentielles pour un programme de jeu ou de traitement graphique. Lorsque vous utiliserez d’autres types de collections dans Visual Basic, gardez bien à l’esprit cette propriété.