Intégrer des images dans les fichiers du controle utilisateur (vb2005express) [Résolu]

Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
- - Dernière réponse : vercomax
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
- 13 mars 2007 à 15:33
bonjour,

j'ai construit un controle utilisateur dans lequel j'affiche des picturebox. pour celà j'utilise la méthode: Image.FromFile(chemin+fichier)

ma question:
peut-on intégrer des images dans les fichiers générés par le controle pour éviter de joindre les images avec la dll du controle.
suis-je clair ?
ou bien une autre méthode ? j'ai en fait, 4 images en GIF de 1.5ko environ

merci.
Afficher la suite 

10 réponses

Meilleure réponse
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
3
Merci
Bonjour


My.Ressources.NomRessource


En .NET2 c'est hyper simple les ressources.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
3
Merci
Bonjour


Quelques remarques :

- Ce code me titille :
<Category("Appearance"
), Description("Hauteur des lampes en pixels."
), DefaultValue(True)> _

Public Propertyhauteur_lampes()AsInteger

Comment la valeur par défaut peut-être True alors que tu utilise un entier ?


- Pour la taille, tu peux utiliser la structure Size, ça t'évite de déclarer 2 variables.


- Pour sélectionner la lampe allumée à la place de 3 variables booléenne, utilise un enum :


Public Enum EColor

    Eteint=0

    Rouge=1

    Jaune=2

    Vert=4

End Enum


private mColor as EColor=Eteint


Lors du dessin :


If (mColor And EColor.Rouge)>0 Then


    e.Graphics.DrawImage(My.Resources.rouge32,l,t,largeur_l,hauteur_l)


else


    e.Graphics.DrawImage(My.Resources.noir32,l,t,largeur_l,hauteur_l)


end if


If (mColor And EColor.Jaune)>0 Then


    e.Graphics.DrawImage(My.Resources.orange32,l,t+hauteur_l,largeur_l,hauteur_l)


else


    e.Graphics.DrawImage(My.Resources.noir32,l,t+hauteur_l,largeur_l,hauteur_l)


end if


If (mColor And EColor.Vert)>0 Then


    e.Graphics.DrawImage(My.Resources.vert32,l,t+hauteur_l*2,largeur_l,hauteur_l)


else


    e.Graphics.DrawImage(My.Resources.noir32,l,t+hauteur_l*2,largeur_l,hauteur_l)


end if


Pour utiliser la propriété :

Tricolor.Couleur=feu_tricolors.EColor.Rouge Or feu_tricolors.EColor.Vert


Et cela active le rouge et le vert.


- Pour documenter ton code, utilise les 3 ' (''') cela te permettra d'avoir les infobulles comme pour le reste du framwork.


- Tu ne controle pas la valeur fourni lors de l'appel de l'assignement
de heuteur_lampe, une valeur négative ou nulle sera acceptée.


- Dans OnPaint : il me semble inutile d'utiliser rect.left et les 3
autres, cela ne change rien dans ton code si tu met 0 à la place de t
et l, de plus tu n'utilise pas w et h.


- C'est peut-être une erreur de la coloration syntaxique, mais indente ton code (tabulations).


Voici rapidement ce que j'ai remarqué.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 212 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour


Si tu est sous .NET2, tu peux les mettre en ressources (dans l'item projet de la liste des fichiers).

En .NET1, il faut ruser, ajoute le fichier à ton projet, puis met le en
ressource incorporée (propriétés), pour y accéder ... j'ai un trou.

Va voir le source de CutToKey ou DupKiller sous .NET 1 sur mon site à la page :

http://nhen0039.chez-alice.fr/fr/progvbnet.php

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
0
Merci
merci, je suis en .net2
j'ai mis mes images en ressource, et ensuite, comment j'y fait référence dans le code du usercontrol ?
merci
Commenter la réponse de vercomax
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
0
Merci
vraiment trés simple en effet
je te remercie beaucoup

j'hésite à publier la source de mon controle ( j'ai honte un peu )
il s'agit d'un feu tricolore

merci encore
Commenter la réponse de vercomax
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour


Il faut bien commencer par un bout, mais en effet, peu d'intéret à le difuser sur VBFrance si ce n'est pas très compliqué.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
0
Merci
puis_je te coller ici le code pour voir si y a pas des trucs idiots ou fous ?
Commenter la réponse de vercomax
Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
136
0
Merci
Bonjour


Si tu veux, je quitte internet vers 15h45 pour aller en cours.

Il est plus facile de batiser quelqu'un que de le convertir.(surtout en programmation)
VB (6, .NET1&2), C++, C#.Net1
Mon site
Commenter la réponse de NHenry
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
0
Merci
Imports




System



Imports


System.Drawing



Imports


System.Windows.Forms



Imports


System.ComponentModel



Namespace


controles



Public
Class feu_tricolore



Inherits PictureBox



Private largeur_l AsInteger = 32


'largeur d'affichage des lampes




Private hauteur_l AsInteger = 32


'hauteur d'affichage des lampes




Private aff_rouge AsBoolean = True'affichage de la lampe rouge



Private aff_orange AsBoolean = True'affichage de la lampe orange



Private aff_vert AsBoolean = True'affichage de la lampe verte


<Category( "Appearance"

), Description("Largeur des lampes en pixels."

), _




DefaultValue(True)> _





Public





Property largeur_lampes() AsInteger



Get






Return largeur_l





End
Get






Set(ByVal value AsInteger)




largeur_l = value




Width = largeur_l




Invalidate()





End
Set






End
Property





<Category( "Appearance"

), Description("Hauteur des lampes en pixels."

), _




DefaultValue(True)> _





Public





Property hauteur_lampes() AsInteger



Get






Return hauteur_l





End
Get






Set(ByVal value AsInteger)




hauteur_l = value




Height = hauteur_l * 3




Invalidate()





End
Set






End
Property





<Category("Appearance"

), Description("Affiche la lampe rouge."

), _




DefaultValue(True)> _





Public





Property affiche_lampe_rouge() AsBoolean



Get






Return aff_rouge





End
Get






Set(ByVal value AsBoolean)




aff_rouge = value




Invalidate()





End
Set






End
Property





<Category("Appearance"

), Description("Affiche la lampe orange."

), _




DefaultValue(True)> _





Public





Property affiche_lampe_orange() AsBoolean



Get






Return aff_orange





End
Get






Set(ByVal value AsBoolean)




aff_orange = value




Invalidate()





End
Set






End
Property





<Category( "Appearance"

), Description("Affiche la lampe verte."

), _




DefaultValue(True)> _





Public





Property affiche_lampe_verte() AsBoolean



Get






Return aff_vert





End
Get






Set(ByVal value AsBoolean)





' aff_vert = value





aff_vert = value




Invalidate()





End
Set






End
Property






Protected
Overrides
Sub OnPaint(ByVal e As PaintEventArgs)





Dim rect As System.Drawing.Rectangle = e.ClipRectangle





Dim l AsInteger = rect.Left





Dim t AsInteger = rect.Top





Dim w AsInteger = rect.Width





Dim h AsInteger = rect.Height





If affiche_lampe_rouge = TrueThen





' e.Graphics.DrawImage(Image.FromFile(chemin_images + "\rouge32.gif"), l, t, largeur_lampe_rouge, hauteur_lampe_rouge)





e.Graphics.DrawImage(My.Resources.rouge32, l, t, largeur_l, hauteur_l)





Else





e.Graphics.DrawImage(My.Resources.noir32, l, t, largeur_l, hauteur_l)





End
If






If affiche_lampe_orange = TrueThen




e.Graphics.DrawImage(My.Resources.orange32, l, t + hauteur_l, largeur_l, hauteur_l)





Else





e.Graphics.DrawImage(My.Resources.noir32, l, t + hauteur_l, largeur_l, hauteur_l)





End
If






If affiche_lampe_verte = TrueThen




e.Graphics.DrawImage(My.Resources.vert32, l, t + (hauteur_l * 2

), largeur_l, hauteur_l)





Else





e.Graphics.DrawImage(My.Resources.noir32, l, t + (hauteur_l * 2

), largeur_l, hauteur_l)





End
If






End
Sub
'OnPaint






End



Class





End


Namespace
'controles
Commenter la réponse de vercomax
Messages postés
548
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
11 septembre 2013
2
0
Merci
ok, merci beaucoup
je vais corriger tout çà

trés sympa de ta part.

bon cours ...
Commenter la réponse de vercomax