KIPRE74
Messages postés120Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention21 novembre 2013
-
6 janv. 2009 à 21:41
KIPRE74
Messages postés120Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention21 novembre 2013
-
6 janv. 2009 à 22:58
Bonjour à tous !
J'ai posé une question qui est resté sans suite sans doute que je l'ai mal formulée.
Je reformule donc ma pensée. Je voudrais copier plusieurs fois une image dans un pictureBox.J'ai un compteur si le nombre est x je voudrais que l'image soit affiché x fois dans le picturebox.
skyla
Messages postés60Date d'inscriptionsamedi 17 juin 2006StatutMembreDernière intervention19 octobre 2009 6 janv. 2009 à 22:31
Bonsoir
Voici une fonction qui pourrait t'etre utile
Elle te permettra de creer des mosaiques d'images dans un pictureBox ou un Form
Comme dit precedement il est impossible de copier plusieur fois une image dans un picturebox à moins que tu dessine cette image directement avec la methode paintpicture
Ouvre ton Projet---->nouvelle Form
Ajoute Un pictureBox nomme le "PicContenaire" et met sa propriété AutoRedraw a TRUE (Tres important)
ajoute un controle Image nommé ImgOriginal et attibue une image a cet element
et colle la procédure suivante
Sub FillForm(Feuille As Object)
'Remplir une feuille avec une mosaique d'images.
On Error GoTo Annul
Dim intX As Integer ' Compteur pour la largeur
Dim intY As Integer ' Compteur pour la Hauteur
Dim sngWidth As Single 'Variable qui contiendra la largeur initiale de ton image
Dim sngHeight As Single 'Variable qui contiendra la Hauteur initiale de ton image
Feuille.ScaleMode = vbTwips ' On precise l'unité de mesure
sngWidth = Me.ImgOriginal.Width 'On attribue la largeur de l'image a sngWidth
sngHeight = Me.ImgOriginal.Height 'Idem pour la Hauteur
'On boucle autant de fois que ton image peut apparaitre dans le conteneur
For intX = 0 To Int(Feuille.ScaleWidth / sngWidth)
'Idem pour la Hauteur
For intY = 0 To Int(Feuille.ScaleHeight / sngHeight)
'On appelle la methode PaintPicture de l'objet en question qui doit recevoir ton image
'Attention: Mettre la propriété AutoRedraw a true pour que l'objet se raffraichisse
'Le control peut etre une Feuille,un PictureBox...
Feuille.PaintPicture Me.ImgOriginal, intX * sngWidth, intY * sngHeight, sngWidth, sngHeight, 0, 0
'Feuille.PaintPicture [Source de l'image],[Coordonné X],[Coordoné Y],[Largeur],[Hauteur]
'Bien noter que la source est de type stdPicture
'Dans cette exemple la source se trouve dans le controle Image
Next
Next
Exit Sub
Annul:
MsgBox Err.Description
End Sub
'=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
'Tu n'as plu qu'a appeler cette procedure pour dupliquer l'image
'
FillForm Me.PicContenaire
Ici bien entendu je rempli le pictureBox Sut toute sa totalité
'si tu as des valeur fixes alor tu les remplace dans les boucles ok
KIPRE74
Messages postés120Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention21 novembre 2013 6 janv. 2009 à 22:09
Merci, mais comment faire alors si on veut que l'image de la picturebox apparaisse plusieurs fois sur la feuille au moment de l'impression du contenu de ce picturebox
Vous n’avez pas trouvé la réponse que vous recherchez ?
Vianneyp
Messages postés82Date d'inscriptionjeudi 6 juillet 2006StatutMembreDernière intervention 6 janvier 2010 6 janv. 2009 à 22:18
Hum...sur vb6 j'utilisai GDI pour faire ce genre de choses, bien sur tu devrai placer "manuellement" ton image en indiquant ses coordonnées a l'intérieur de la picturebox. Mais peut étre vb.net offre t-il un moyen plus simple, je n'en sait rien.
KIPRE74
Messages postés120Date d'inscriptionjeudi 15 mai 2008StatutMembreDernière intervention21 novembre 2013 6 janv. 2009 à 22:27
Eh bien c'est là tout mon problème. Lorsque je fais Print l'image n'apparait qu'une seule fois sur la feuille mais je voudrais fixer le nombre d'image sur la feuille, pour l'instant je n'y arrive pas. J'ai éssayé avec une boucle mais ça m'a fait plusieurs copies avec une seule image chacune !
Et là c'est chaud !!!