Cours-Gratuit
  • Accueil
  • Blog
  • Cours informatique
home icon Cours gratuits » Cours informatique » Cours programmation » Cours visual basic » Exercices VB »

Articles similaires

  • Exercice VB: Calculatrice Simplifié
  • Exercice VB: Tp Gestion Stagiaires Simplifié
  • Tuto Excel : formule matricielle (insérer, modifier ou supprimer)
  • Tutoriel Python: la librairie Numpy
  • Exercice VB: La taupe
  • Exercice VB: Somme Matrice
  • Tutoriel Python : calculs matriciels
  • Tuto Python : transformer une liste en matrice ou l'inverse
  • Exercice Langage SQL : Une Médiathèque (Suite...)
  • Tutoriel Excel : la fonction INDEX
  • Exercices codage des images
  • Tutoriel Word : comment créer facilement un organigramme

Documents similaires

  • TP programmation web pour débutant

  • Exercice bureautique pour réviser ensemble

  • Projet en JAVA sur gestion simplifié d'une bibliothèque

  • Exercice de bureautique pour débutant

  • Matrice swot SWOT analysis templates for Microsoft PowerPoint

  • Serie d’exercices avec corriges en economie : croissance et developpement economique

  • Modèle de CV sur Word

  • Modèle avancé de grille d'évaluation sur Excel

Exercice VB: Éditeur simplifié d'une matrice

Rédigé par GC Team, Publié le 03 Janvier 2012, Mise à jour le Vendredi, 16 Décembre 2022 22:17
Participez au vote ☆☆☆☆☆★★★★★

Sous Windows, une icône est constituée de petits points juxtaposés formant une image. Chacun de ces points peut avoir une couleur choisie parmi un nombre souvent limité de couleurs "standard". On appelle cette gamme de possibilités une palette. Un éditeur d'icônes a donc pour premier rôle de permettre à l'utilisateur de placer des points de différentes couleurs dans une grille agrandie représentant une matrice de points. Ils formeront plus tard l'image de l'icône.

Programme demandé : 

On se propose ici de réaliser un éditeur simplifié d'une matrice de 16 x 16 carrés. On pourra en cliquant sur l'un d'entre eux y placer une couleur choisie dans une palette située à sa droite (voir exemple ci-dessous). Il ne sera pas demandé de prévoir la lecture ou la sauvegarde de ces points dans un fichier. En revanche, toutes ces valeurs seront stockées dans un tableau (nommé grille) de 256 éléments de type entiers.

  1. Interface (voir exemple ci-dessous):
  • Une zone image (objet PictureBox – voir note en bas de page) pour y dessiner votre grille
  • Une autre zone image pour y dessiner la palette
  • Bouton Effacer pour effacer le pictogramme et "vider" le tableau
  1. Le code d'affichage initial sera placé dans Form_Activate et débutera par l'instruction DoEvents
  2. La grille ou image principale (nommée par défaut Picture1) devra être quadrillée à l'aide de petits carrés représentant chacun un pavé de couleur. Pour obtenir ce type de carrés, on utilisera l'instruction line précédée de deux autres commandes ayant pour but de changer le mode de remplissage des rectangles (propriété .FillStyle = 0) et d'en spécifier la couleur (propriété .FillColor). Le cadre est dessiné par défaut en noir, avec par exemple: Picture1.line (x1,y1)-(x2,y2) , , B
  3. Pour choisir une couleur dans la palette, cliquez simplement sur le carré rempli avec la couleur correspondante. A l'aide de l'événement MouseDown de chacun des objets Picture, vous pourrez repérer les positions X et Y de la souris pour déterminer la case visée. Un choix judicieux de la propriété Scale vous simplifiera grandement la tâche. Les 16 couleurs de la palette correspondent aux 16 valeurs possibles pour la fonction QBColor.
  4. Le bouton Effacer aura pour but de réinitialiser le tableau (nommé grille) et d'effacer les cases de la grille en les remplissant de blanc.

Note:

Pour dessiner dans un objet Picture, on peut utiliser les instructions classiques précédées du nom de l'objet en question. Par exemple :

Picture1.Scale (Xmin,Ymax)-(Xmax,Ymin)
Picture1.Cls
Picture1.Line (X1,Y1) - (X2,Y2)

Conseil:

Pour la gestion de la souris, essayez donc d'utiliser les événements MouseDown et MousMove sur les objets Picture1 ou Picture2, plutôt que l'événement Click

Enonce-exercice-VB-id2077


Corrig-exercice-VB-id2077

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Dim grille (1 To 16, 1 To 16) As Integer
 	Dim pal (1 To 16) As Integer
 	Dim couleur As Integer
Private Sub Bouton_Effacer_Click()
     Form_Activate
End Sub
Private Sub Form_Activate()
          Dim i As Integer, j As Integer
     DoEvents
     '1) Echelle de la grille
     Picture1.Scale (0, 16)-(16, 0)
     '2) Initialisation de la grille et affichage initial
     Picture1.FillStyle = 0
     couleur = 15 'Blanc
     Picture1.FillColor = QBColor(couleur) 'On pourrait aussi utiliser VBWhite avec VB5
     For i = 1 To 16 'pour X
          For j = 1 To 16 'pour Y
               grille(i, j) = couleur
               Picture1.Line (i - 1, j - 1)-(i, j), , B
          Next j
     Next i
     'Définition de l'échelle de la palette
     Picture2.Scale (0, 16)-(1, 0)
     Picture2.FillStyle = 0
     For i = 1 To 16
          Picture2.FillColor = QBColor(i - 1)
          Picture2.Line (0, i - 1)-(1, i), , B
     Next i
End Sub
Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     grille(Int(X), Int(Y)) = couleur
     Picture1.Line (Int(X), Int(Y))-(Int(X) + 1, Int(Y) + 1), , B
End Sub
Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
     If Button  0 Then Picture1_MouseDown Button, Shift, X, Y

End Sub
Private Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
     couleur = Int(Y)
     Picture1.FillColor = QBColor(couleur)
End Sub
  • Contactez-nous
  • A propos de nous
  • On recrute
  • Rechercher dans le site
  • Politique de confidentialité
  • Droit d'auteur/Copyright
  • Conditions générales d'utilisation
  • Plan du site
  • Accueil
  • Blog
  • Finance et compta.
  • Formations Pro.
  • Logiciels & Apps
  • Organisation
  • Cours informatique
  • Aide à la rédaction
  • Etudes et Metiers
  • Science et Tech
  • Titans de la Tech
id 11354 02