Précédente     TOC Contenu     Suivante                    



Notes de cours 7

Caractères et images






Gérer le texte

Il est souvent nécessaire quand on saisie des données ou qu'on valide des informations,
de pouvoir manipuler les chaînes de caractères de différentes façons. Voyons quelques fonctions utiles pour exécuter ces manipulations:

Len(chaine): retourne la longueur - nombre de caractères dans la chaine.

Left(chaine, nombre): retourne le nombre de caractères spécifié à partir de la gauche de chaine.

Right(chaine, nombre): retourne le nombre de caractères à partir de la droite de la chaine.

Mid(chaine, position, nombre): retourne le nombre de caractères spécifié à partir de position dans la chaine.

InStr(chaine1, chaine2): retourne la position dans la chaine1 où chaine2 commence - retourne 0 si chaine2 pas trouvée

LTrim(chaine), RTrim(chaine) et Trim(chaine): retourne la chaine avec les espaces non-significatifs enlevés, à gauche, à droite ou les deux.

LCase(chaine), UCase(chaine): LCase retourne la chaine toute en minuscules (lower case) et UCase retourne toutes des majuscules (upper case).









Format(chaine, format): retourne la chaine formattée selon le format spécifié; les caractères de formattage utilisés pour les données numériques sont:

0 représente un chiffre, avec les zéros non-significatifs
# représente un chiffre, sans les zéros non-significatifs
. pour la position du décimal
, pour les groupes de milliers
+ - ( ) espace affichés littéralement


Par exemple:
Format(3456.7, "00000.00") --> 03456.70
Format(3456.7, "#####.##") --> 3456.7
Format(003456.75899, "##,##0.00") --> 3,456.76
Format(456.7, "##,##0.00$") --> 456.70$



Pour les données de type date ou heure on utilise les caractères suivants:
yy --> l'année sans le centennaire - eg: 98
yyyy --> l'année avec centennaire - eg: 1998
m --> le mois numérique - eg: 10
mmm --> le mois abbrévié - eg: oct
mmmm --> le nom du mois au long - eg: octobre
d --> le jour du mois, sans zéro - eg: 8
dd --> le jour du mois, avec zéro - eg: 08
dddd --> le nom du jour de la semaine - eg: lundi
h --> l'heure, sans zéro - eg: 7
hh --> l'heure avec zéro - eg: 07
mm --> minutes - eg: 45
ss --> secondes - eg: 50


Il existe aussi plusieurs formats prédéfinis qu'on peut utiliser. Par exemple:
"general date", "short date", "long date" pour les dates
"general number", "currency", "standard" pour les nombres.

On les utilise comme:
       lblDateEmb.caption = Format(dtmEmbauche, "short date")

       lblSalaire.caption = Format(sglSalaire, "currency")


Voir la rubrique: Named formats dans l'Aide.


Blocs de texte


Il est souvent utile dans une application de pouvoir travailler avec des blocs de texte. Les contrôles TextBox et ComboBox possèdent des propriétés qui permettent de manipuler les blocs de texte. Il s'agit de:
SelStart: entier long qui identifie le début du bloc - 0 signifie le début du texte et un nombre égal à la longueur signifie tout le texte
SelLength: un entier long qui identifie le nombre de caractères à sélectionner
SelText: un string qui contient les caractères sélectionnés

Par exemple, le code suivant sélectionne tout le texte dans un TextBox:
Text1.SetFocus
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
'
' Si je veux remplacer le texte choisi
' j'assigne une nouvelle valeur à SelText
'
Text1.SelText = "Nouvelle valeur"
'
' Notez que ce genre de manipulation est habituellement lancé
' par les événements MouseDown, MouseUp ou
' MouseMove associés au contrôle




Voici un exemple de bloc, tel que décrit dans l'Aide:
Private Sub Form_Load ()
     Text1.Text = "Two of the peak human experiences"
     Text1.Text = Text1.Text & " are good food and classical music."
End Sub

Private Sub Form_Click ()
     Dim Search, Where ' Declare variables.
     ' Get search string from user.
     Search = InputBox("Enter text to be found:")
     Where = InStr(Text1.Text, Search) ' Find string in text.
     If Where Then ' If found,
          Text1.SelStart = Where - 1 ' set selection start and
          Text1.SelLength = Len(Search) ' set selection length.
     Else
          MsgBox "String not found." ' Notify user.
     End If
End Sub










Objets spéciaux

Screen: représente l'environnement Windows au complet - permet l'accès aux feuilles et aux contrôles. Ses propriétés importantes: ActiveControl retourne le nom du contrôle qui a le focus et ActiveForm retourne le nom de la feuille courante

Clipboard: le presse-papier du système - permet de manipuler (couper, copier, coller) du texte et des graphiques de l'application. Ses méthodes importantes: Clear vide le clipboard, SetText met une chaine de texte dans le clipboard, GetText retourne une chaine de texte du clipboard.




Voici un exemple qui montre comment utiliser l'objet Clipboard, le presse-papier, pour manipuler des blocs de texte. Remarquez qu'on fait la manipulation au moyen d'un menu puisque c'est possible de maintenir le contrôle choisi en focus pendant qu'on fait la sélection du texte.
Notez aussi que le fait d'utiliser des références à l'objet Screen plutôt qu'à des contrôles spécifiques nous permet d'incorporer le code dans n'importe quelle application, peu importe les noms qu'on a donné aux différents contrôles.
This example shows how the Clipboard object is used in cut, copy, paste, and delete operations. To try this example, create a form with a TextBox control and use the Menu Editor to create an Edit menu (for each of the commands, set the Caption property = Cut, Copy, Paste, and Delete, respectively; set the Name property = EditCut, EditCopy, EditPaste, and EditDelete, respectively).

Private Sub EditCut_Click ()
      ' Clear the contents of the Clipboard.
      Clipboard.Clear
      ' Copy selected text to Clipboard.
      ClipBoard.SetText Screen.ActiveControl.SelText
      ' Delete selected text.
      Screen.ActiveControl.SelText = ""
End Sub

Private Sub EditCopy_Click ()
      ' Clear the contents of the Clipboard.
      Clipboard.Clear
      ' Copy selected text to Clipboard.
      ClipBoard.SetText Screen.ActiveControl.SelText
End Sub

Private Sub EditPaste_Click ()
      ' Place text from Clipboard into active control.
      Screen.ActiveControl.SelText = ClipBoard.GetText ()
End Sub

Private Sub EditDelete_Click ()
      ' Delete selected text.
      Screen.ActiveControl.SelText = ""
End Sub










GÉRER LES GRAPHIQUES

Le système de coordonnées

Le système de coordonnées de la feuille est une grille à 2-dimensions qui définit la position sous forme de (x,y). la valeur de x représente la distance à partir du bord gauche et y représente la distance à partir du haut. La position (0,0) est donc le coin supérieur gauche de la feuille.

En VB l'unité de mesure pour les coordonnées est le twip.
        1 twip = 1/20 d'un point d'impression
        1440 twips = 1 pouce
        567 twips = 1 centimètre

Cependant, il est possible de changer l'unité de mesure en changeant la propriété ScaleMode.
ScaleMode = 1 --> twips
ScaleMode = 2 --> points
ScaleMode = 3 --> pixels
ScaleMode = 4 --> caractères
ScaleMode = 5 --> pouces
ScaleMode = 6 --> millimètres
ScaleMode = 7 --> centimètres

On peut changer ScaleMode dans FormLoad, ce qui appliquera l'échelle à la feuille elle-même ou bien, on peut changer ScaleMode pour un objet spécifique comme:
Image1.ScaleMode = 5 'en pouces
Image1.Move 2, 2, 2, 2


Déplacement et grandeur

Par exemple, pour déplacer ou modifier la grandeur d'une feuille on utilise la méthode Move, comme dans:
Form3.Move 3000, 3000      'à environ 5 cm de la gauche et 5 cm du haut
Form3.Move(3000, 3000, 5670, 5670)      ' haut. = 10 cm, larg. = 10 cm
Form3.ScaleMode = 7
Form3.Move 5, 5, 10, 10

Les images

Une image peut être affichée de 3 façons:
1) sur une feuille directement
2) dans un contrôle PictureBox
3) dans un contrôle Image
Pour afficher l'image dans un des contrôles on doit spécifier le nom du fichier qui contient l'image dans la propriété Picture du contrôle.
Dans le cas d'un Form, l'image devient le "background". Il faut que l'image soit de la bonne grandeur avant de l'afficher.




Pour charger une image lors de l'exécution on utilise la fonction LoadPicture comme:
picLogo.Picture = LoadPicture("C:\images\auto.bmp")


Pour enlever une image lors de l'exécution on utilise aussi LoadPicture, avec le paramètre nul comme:
picLogo.Picture = LoadPicture("")

Dans un PictureBox, si l'image est trop grande pour le contrôle dans lequel on l'affiche, elle est coupée à droite et en bas.
Si on veut que le contrôle s'étende pour recevoir l'image, on met la propriété AutoSize à True. Le contrôle Image n'a pas de propriété AutoSize mais, il s'agrandit automatiquement à la grandeur de l'image. Le Form n'a pas d'AutoSize et ne s'ajuste pas à la grandeur de l'image.

Dans un Image, on peut mettre la propriété Stretch à True si on veut que l'image ajuste sa grandeur à la grandeur du contrôle.






Multimédia


Multimedia réfère à des unités autres que l'écran ou l'imprimante pour produire des sons, regarder des vidéos ou écouter de la musique. Pour ce faire, on utilise un nouveau controle: le Multimedia control. Mais ne le chercher pas dans la boite à outils; il faut l'ajouter d'ailleur. Pour la pratique, créer une nouvelle feuille: frmMultimed.frm dans un projet existant. Dans le menu Projects --> Components, trouvez "Microsoft Multimedia Control 6.0" et cochez la case puis faites OK. Maintenant, le Multimedia control fait partie de votre boite à outils (mais seulement pour ce projet).

Si vous mettez un Multimedia control sur la feuile, vous obtenez une barre de bouton comme vous voyez pour tous les équipements de ce genre. Dans la DeviceType property vous spécifiez quelle sorte de lecteur ce control opère:
DeviceType  Device 
CDAudio  CD Audio player 
DAT  Digital audio tape player 
Overlay  Overlay 
Scanner  Scanner 
Vcr  Videotape player and recorder 
Videodisc  Videodisc player 
Other  Other devices not specified 


Exemple: un lecteur CD

Dans la nouvelle feuille: frmMultimed, on ajoute un Multimedia control. Puisque c'est le seul control qu'on utilise, on laisse son nom à MMControl1.

Puis on met: CDAudio dans DeviceType. Le device CDAudio sert à lire des CD dans le lecteur CD. Si on veut entendre le son qui est enregistré dans un fichier .WAV on utilise le DeviceType WaveAudio et on doit lui fournir un Filename qui contient le son.

On ajoute quelque labels pour complèter la feuille et on obtient:



Maintenant il faut écrire le code pour faire fonctionner le lecteur.

D'abord, voici ce qu'il faut savoir au sujet du MM Control: Il y a un Track property qui contient le numéro de la piste courante. Mais la propriété la plus importante est Command property qui peut accepter plusieurs valeurs et qui, en fait, opère le lecteur.

Command value Meaning
Open  Opens the device 
Close  Closes the device 
Eject  Ejects the CD 
Play  Plays the device 
Pause  Pauses the device 
Next  Goes to next track 
Prev  Goes to beginning of current track.
If used within 3 seconds of most recent Prev, goes to beginning of previous track
Record  Initializes recording 
Save  Saves the open device file 
Seek   Step backward or forward a track 
Stop  Stops the device 
Step  Step forward through tracks 


Par exemple, pour ouvrir le lecteur, on fait:
MMControl1.Command = "Open"      'assigne la valeur "Open" à la propriété Command
Pour faire une pause:
MMControl1.Command = "Pause"     'assigne la valeur "Pause" à la propriété Command

Comme vous savez, le truc de la programmation est de savoir dans quel événement on doit écrire le code. On sait que le Form_Load event est activé quand la feuille s'ouvre. On peut y mettre le démarrage du lecteur avec Open. Un fois le lecteur en marche, il ne s'arrêtera pas même si on ferme la feuille, à moins qu'on lui dise de s'arrêter. On va donc mettre la commande Stop dans le Form_Unload event. Et pour voir ce qui se passe, on va utiliser le StatusUpdate event pour afficher le compteur de piste; "change track, pause, play" sont toutes des actions qui lancent un StatusUpdate.

Vous remarquerez que vous pouvez utiliser les boutons du MM Control pour contrôler le lecteur.















Si vous ne voyez pas içi ce que vous cherchez en Visual Basic,
utilisez la recherche Google pour trouver des ressources additionnelles.

Google






Haut de la page





Accueil