|
Cours Visual Basic N°6
|
| Auteur : Christophe Darmangeat |
VB étant un langage objet, donc événementiel, et la douce saison des projets n’allant pas tarder à arriver (je vois déjà éclore les premiers bourgeons), il est grand temps de s’amuser un peu et de faire des trucs qui bougent et des machins qui remuent.
Utiliser (bêtement) la méthode Print
Va écrire en haut à gauche de la Form " Coucou " . La prochaine instruction Print provoquera une écriture juste en dessous… sauf si nous avions terminé l’instruction précédente par un point-virgule. Auquel cas, la prochaine écriture s’effectuera à la suite.
Remarque : a priori, si vous redimensionnez la Form... le texte disparaît. Cela peut être gênant. Il est facile d’y remédier : fixez auparavant la propriété AutoRedraw de la Form à True. Attention, cela ralentit toutefois l’application. Il y a une autre solutions possibles : gérer soi-même l’événement Paint de la Form, qui correspond à un redimensionnement…
Intéressant : Print s’applique également à un contrôle Picture. Cela représente une alternative par rapport aux modifications de Label.Caption que nous avions utilisé jusque là.
Spécifier des couleurs
Il n’y a pas moins de trois systèmes de couleurs en VB, que vous pouvez utiliser indifféremment.
Les coordonnées
Dès que l’on va placer ou déplacer des objets graphiques, il va falloir spécifier les coordonnées. Et ce n’est pas toujours d’une simplicité biblique.
Premier point, sur lequel M. de Lapalisse, un ancien voisin à moi, ne m’aurait pas démenti : l’écran a deux dimensions. Cette forte pensée étant posée, il reste que l’origine (le point 0, 0) se trouve en haut à gauche, et pas du tout en bas à gauche, là où tout occidental, hormis Bill Gates, l’aurait placé.
Deuxième problème : comment savoir quelles sont les dimensions de l’objet sur lequel vous voulez dessiner ? La réponse vous est donnée par les propriétés ScaleHeight et ScaleWidth de l’objet.
L’astuce, c’est que l’on dispose de plusieurs unités de mesures possibles.
L’unité par défaut est le twip. Un twip, c’est très exactement 1/567e de centimètre. Le gros avantage de cette unité, c’est qu’elle est indépendante du périphérique utilisé. Un centimètre, c’est toujours un centimètre (nous négligerons ci les effets de la relativité, la vitesse moyenne de déplacement des écrans par rapport à celui qui les regarde étant généralement négligeable par rapport à la vitesse de la lumière).
Mais il y a aussi le pixel. L’avantage du pixel, c’est sa rapidité. Vous épargnez à Windows une conversion, puisque un pixel, c’est un point. Mais l’inconvénient, c’est que selon les résolutions d’écran, le nombre de pixels varie fortement… (le nombre de twips varie aussi selon la taille de l’écran, me direz-vous, alors perdu pour perdu…)
On modifie (ce qui n’est généralement pas indispensable) le système de mesures par la propriété ScaleMode.
Contrôles graphiques
1 contrôles image
Ce sont des contrôles de VB, exactement comme les zones de textes, les boutons, etc., mais qui ont pour but de contenir des jolis dessins. Enfin, des dessins. Il y en a deux : le contrôle PictureBox et le contrôle Image. Voici un bref récapitulatif de leurs caractéristiques respectives :
| PictureBox | Image | |
| Redimensionnement du contrôle | Contenu non modifié | Contenu déformé
(si Propriété Strech = True) |
| Taille mémoire | Lourd | Léger |
| Traçage de graphiques durant l’exécution | Possible | Impossible |
De ces trois critères, sauf cas très spécial, seul le deuxième est réellement important. Conclusion, hormis exception, il faut choisir un Image pour poser des images.
2 contrôles graphiques
Il y a aussi le contrôle Shape. C’est un contrôle qui peut prendre des formes géométriques simples : lignes, rectangles, cercles, ellipses. Quant au contrôle Line, il se contente de tracer des lignes. Ces deux derniers contrôles peuvent éventuellement servir à faire des schémas, mais si on veut des vrais graphiques, on n’a pas trop intérêt à s’y attarder, d’autant plus que ces contrôles ne gèrent pas les événements souris.
3 méthodes graphiques
Il existe un certain nombre d’actions dites " méthodes graphiques ", qui ne sont pas des contrôles, mais qui sont du code qui a pour rôle de tracer des dessins sur un objet (une Form, notamment). Le dessin s’effectue donc au cours de l’exécution du programme. Donc, cela gagne de l’occupation mémoire par rapport à un contrôle similaire. Ce n’est pas que je croie que cela serve beaucoup, mais pour mémoire, on a :
Pset permet de tracer des pixels un par un :
Line permet de tracer des lignes :
Circle dessine cercles et ellipses :
On peut également dessiner des arcs de cercle, en utilisant la syntaxe complète :
Où c est la couleur, ad et ar les angles de départ et d’arrivée… en radians. Quant à e, c’est un paramètre qui permet de tracer des ellipses : il exprime le rapport de la largeur sur la hauteur du cercle.
Utiliser des fichiers image
Lorsqu’on a recours dans une application VB à un fichier image (du type .bmp), par exemple, on pourrait penser qu’il suffit de poser un contrôle PictureBox, et de définir sa propriété Picture (son contenu) en désignant l’image voulue. Malheureusement, ce n’est pas si simple. A l’exécution, il ne suffira pas en effet qu’on ait dit qu’on voulait tel fichier image dans tel contrôle PictureBox. Il faudra aussi impérativement que ce fichier ait été préalablement chargé en mémoire.
Dès lors, il y a deux stratégies possibles.
Nous vous informons que ce cours constitue une œuvre protégée en France par le Code de la Propriété Intellectuelle, et à l’étranger par les conventions internationales en vigueur sur le droit d’auteur. La violation de l’un des droits d’auteur de l’œuvre est un délit de contrefaçon. Il est donc interdit, à titre privé ou public, de reproduire, copier, vendre, revendre ou exploiter, que ce soit dans un but commercial ou purement gratuit, ce cours, sauf accord exprès et préalable de son auteur.
| RESSOURCES GRATUITES |
| |
| |
| |
| |
| |
| |
| |
| PRATIQUE / OUTILS |
| |
| |
| |
| |
| TÉLÉCHARGEMENTS |
| |
| |
| |
| INFOS SITE |
| |
| |
| |
| |
| PARTENAIRES |
| |
| |
| |
| |
| |
| |
| |
|
|