Voilà c'est mon deuxième "plagia" d'une source de Japee (désolé ... ;) )
Après la solution de Japee qui, grâce à une astuce, permettait d'éviter le message
d'erreur bien connue "Erreur JPEG #41", source que vous trouverez ici :
http://www.delphifr.com/codes/EVITER-FENETRE-ERR EUR-JPEG-41-SI-CHARGEMENT-IMAGE_29433.aspx
J'avai s trouvé une solution (que vous trouverez dans les commentaires de la source de Japee)
il y a deux mois et que je pensais être la bonne ...
Mais quand j'ai voulu réutiliser ce bout de code ... oh!! Surprise,
L'interception de l'erreur JPEG #41 ne se faisait plus.
Après un travail d'investigation, il en ressort que la méthode que je proposais ne
fonctionnait qu'avec la propriété Stretch de TImage à True ??????? (Voir la Démo DemoOld.dpr)
Comme je n'étais pas satisfait du résultat je me suis penché à nouveau sur le problème et il en résulte
"une nouvelle méthode d'interception" intégrée directement dans ma nouvelle unité crJPEG
(Crée à la base pour pouvoir charger les JPEG directement depuis les ressources) Voir ici :
http://www.delphifr.com/codes/CHARGEZ-VOS-JPEG-D EPUIS-VOS-RESSOURCES-FACILEMENT_40049.aspx
(Je fait ma petite Pub en passant ... lol)
La détection et l'interception fonctionnent maintenant à 100% aussi bien avec :
- TJPEGImage (LoadFromFile & LoadFromStream & LoadFromResourceName & LoadFromResourceID)
- Qu'avec TImage.Picture (LoadFromFile & LoadFromStream)
Exceptionnellement vous trouverez deux projets, je tenais absolument à ce que vous puissiez
constater par vous même le problème avec "TImage.Stretch"
- DemoOld.dpr : ancienne version avec problème "TImage.Stretch"
- Demo.dpr : 100% fonctionnel dans tous les cas