draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010
-
8 avril 2007 à 12:54
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013
-
9 avril 2007 à 19:43
Salut a tous,
Eh je suis en train de me faire un petit usercontrol pour afficher des images avec gdi
Le truc c'est que je ne sais pas comment enregistrer une image choisie dans l'ide de maniere a ce qu'elle soit compilee avec le projet.
Etant donné que c'est exclusivement pour des png avec transparence je ne peux pas utiliser les objets de vb pour stoker l'image...
J'avais penser ajouter le fichier dans une ressource pour le relire avec LoadResData, mais je ne trouve pas de fonction genre AddResData...
Quelqu'un a une idée ?
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 8 avril 2007 à 14:40
Salut Darksidious et merci,
Mais je veux enregistrer le fichier image pas le rendu car sinon je ne sais plus vraiment agir dessus...
Mon control charge le hImage avec gdi depuis le fichier et en fonction des evements Resize etc... il affiche l'image.
De cette facon je garde toujours l'image d'origine en memoire et je la transforme a volonté
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 8 avril 2007 à 18:21
Eh bah en fait si je fais comme tu dis il va m'enregister la picture en "bmp" ce qui ne m'arrange pas du tout...
Dans mon control je ne passe a aucun moment par un stdPicture, j'affiche l'image via GdipCreateFromHDC.
Je dois surement mal m'exprimer car je connais tres mal les UserControl mais ce que je veux c'est pouvoir enregistrer le fichier en ressource custom...
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 8 avril 2007 à 20:27
Tu ne peux pas (à ma connaissance) passer par un fichier ressource : étant donné que les ressources sont stockées directement dans l'ocx après compilation, tu ne peux plus les modifier !
Par contre, si ton but est de mettre l'image en ressource puis compiler ton ocx après, là y'a aucun problème : tu mets ton image en ressource binaire (custom), puis tu n'as plus qu'à créer le fichier pour l'extraire :
Private Function ExtractFile(sFileName As String, sRessourceType As String, sRessourceName As String) As Boolean
'======================================================================
'Function : ExtractFile
'Date : 13/02/2005
'Auteur : DarK Sidious
'But : Permet d'extraire un fichier des ressources
'======================================================================
'on active la routine de traitement d'erreur
On Error GoTo erreur0
'déclaration des variables privées
Dim byBuffer() As Byte
Dim iFileNumber As Integer
'on écrit le fichier
Open sFileName For Binary Access Write As #iFileNumber
Put #iFileNumber, , byBuffer
Close #iFileNumber
'la fonction a réussie
Let ExtractFile = True
Exit Function
'routine de traitement d'erreur
erreur0:
'Problème : On n'a pas pu enregistrer la dll
'Solution : On quitte la fonction avec une valeur d'erreur : False
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 8 avril 2007 à 20:44
Eh non je ne veux pas modifier la ressource je veux en creer une mais "dynamiquement" pendant la creation du soft.
En fait l'utilisateur choisis son png en mode creation dans vb et de la il faut que j'arrive a trouver un moyen de l'enregister
Je sais extraire les ressources via LoadResData mais je ne sais pas comment les creer autrement que par l'editeur de ressource de vb.
Au passage c'est un UserControl "local" pas un ocx...
Merci quand meme pour tes réponses ;)
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 8 avril 2007 à 21:12
Ok y a donc pas de fonction prévue dans vb...
Merci et désolé de t'avoir fait perdre autant de temps pour une question mal posée
Tant que j'y suis, peut on enregistrer un ByteArray() avec propertybag ?
Si oui je pourrais ouvrir le fichier avec un Get #... et enregistrer le tableau puis recréer le fichier a l'execution...
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 8 avril 2007 à 21:21
Je pense que oui. Mes connaissances des possibilités du propertybag sont limitées, mais à ce que j'ai pu en voir, il est possible de stocker tout et n'importe quoi avec !
Au pire, convertit ton tableau de bits en String (j'ai bien dis au pire !), et enregistre ta string en tant que propriété.
Pour ce qui est du temps perdu, t'en fait pas, si je réponds au forum, c'est que j'ai du temps à perdre ;p
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 9 avril 2007 à 18:12
Yep j'enregiste un Byte() dans le PropertyBag
Et il n'apparait heureusement pas dans le volet de proprites du control dans l'ide
Par contre en String bien, donc a ne pas faire...
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
cs_DARKSIDIOUS
Messages postés15814Date d'inscriptionjeudi 8 août 2002StatutMembreDernière intervention 4 mars 2013130 9 avril 2007 à 18:53
Normal, pour qu'il apparaisse dans la feuille des propriétés, il faut créer un property Get/Let public, et qu'en plus, il soit bien visible dans les attributs du projet.
draluorg
Messages postés625Date d'inscriptionvendredi 23 avril 2004StatutMembreDernière intervention25 novembre 2010 9 avril 2007 à 19:19
Eh bah vi c'est obligatoire pour ecrire dans le propertybag non ?
Si je ne mets pas mets les Property Let/Get ou que je les mets en private il me met "Propriété introuvable" lors du Read/Write Property.
Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...