Liste
Solution

Visual Basic - Exercice 2:

(Exercice proposé par Ruben VERA)

Editeur d'icône simplifié :

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

 

    ( SOLUTION DE L'EXERCICE 2 )