cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 2014
-
10 avril 2008 à 17:40
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 2014
-
11 avril 2008 à 15:28
Salut, voilà j'ai un petit problème enfinun gros ça dépend comment que je pourrait le résoudre surtout. :)
J'ai cette ligne de code :
private
Icon getIco(
icoNumber numberInList){
return
Icon.FromHandle(
new System.Drawing.
Bitmap(iconeList.Images[(
int)numberInList]).GetHicon());}
Elle retourne une une icône à partir d'un contrôle ImageList, or à un moment t que je ne peux déterminé car c'est aléatoire, le prog plante sur cette ligne en me disant erreur générique de GDI+ : "-2147467259"
J'ai regarder un peu partout mais je ne vois pas comment résoudre ce problème.
Quelqu'un aurait t'il une idée d'où viens le pb ? j'ai réussit à déterminer que cela viens du
"new ...Bitmap....GetHicon()", car en enlevant le getHicon dans l'espion express l'image existe, alors que lorsque je débug avec le GetHicon ça me met le même message d'erreur.
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 11 avril 2008 à 10:04
Salut,
J'ai ajouter le contrôle "ImageList" à la WinForm, puis avec les outils de la fenêtre propriétés j'ai ajouter les images provenant de fichier icônes (fichier ICO créer avec VS).
Donc oui tjs sur les mêmes Item de mon ImageList parfois le 1, parfois le 3, etc...
cs_Bidou
Messages postés5487Date d'inscriptiondimanche 4 août 2002StatutMembreDernière intervention20 juin 201361 11 avril 2008 à 10:19
Je viens de faire qqe testes chez moi, ça marche sans soucis.
Sans pouvoir reproduire le problème, je ne sais pas trop comment t'aider...
Lorsque l'erreur se produit, il faudrait regarder sur quel Bitmap cela c'est produit et inspecter les propriétés de ce bitmap pour voir s'il n'a pas une particularité.
Pas d'autres idées pour l'instant...
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 11 avril 2008 à 10:24
Merci bidou,
Je suis également en pleine phase de test pour voir si le temps à 1 ou 2 sec près avant plantage est régulier, j'ai également tester les 7 images de mon ImageList et pour le moment aucun problème.
Ces icônes doivent mettre régulièrement à jour la tray icône, peut-être cela viens t'il de l'écran de veille... car quand la dernière fois je suis revenu sur le pc l'écran de veille était affiché, pour les autres fois je ne me souviens pas :) (écran de veille : Blank.scr)
Chris...
Web : Firstruner
Vous n’avez pas trouvé la réponse que vous recherchez ?
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 11 avril 2008 à 11:32
Je re,
Alors j'ai fini par déterminer un premier point ! Le moment du plantage se fait toutjours après 27min et 36sec. à ce moment là plus aucune image de l'imagelist n'est disponible elle me retourne toutes la même erreur. Pas d'idée ??? Est-ce que ma ligne appeler très souvent peux générer une surcharge de Handles ? est-ce que le new placer ainsi est bien ou dois-je plutôt instancier l'image Bitmap et ensuite appeler le Dispose voir même forcer le garbage collector à vider les trucs en trop ?
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 11 avril 2008 à 13:29
Merci, j'ai été voir cette fameuse fonction, mais par contre, hmm comment dire à quel moment je dois l'insérer selon ma fonction suivante ? (désoler pour ma bétisité) Car ça plante au niveau du GetHicon et faut bien que je récupère l'icône avant de la détruire.
private
Icon getIco(
icoNumber numberInList){
try{
Bitmap nIcon =
new System.Drawing.
Bitmap(iconeList.Images[(
int)numberInList]);
cboulas
Messages postés2641Date d'inscriptionmercredi 2 juin 2004StatutMembreDernière intervention 8 janvier 201416 11 avril 2008 à 15:28
Merci pour l'info très utile ;)
J'ai finalement revus toute la partie de code qui appelais cette fonction, et j'en suis arrivé à diviser par +60 son appels en ne l'appeleant que lorsque cela est nécessaire.
désormais je continu ma phase de test en espérant que tout va tenir +48h :)