|
| Iniciado por Jean Turcotte, 30,mar. 2020 19:36 - 7 respuestas |
| |
| | | |
|
| |
Miembro registrado 1.406 mensajes |
|
| Publicado el 30,marzo 2020 - 19:36 |
Bonjour, je sollicite votre aide pour résoudre mon problème. Voici ma fenêtres de paramètre;

Lorsque je clic sur l'image, j'exécute ceci:
sSel est une chaîne iMonImageORG est une Image iMonImageMOD est une Image IMG_Temp est une Image sPathTemp est chaîne = "" gxRatio est un numérique
sSel = fSélecteur("C:\", "Sélectionnez un fichier...", "Fichiers image (*.jpg)"+TAB+"*.jpg" + RC + "Fichiers image (*.png)" + TAB + "*.png", "*", fselExiste) SI sSel <> "" ALORS iMonImageORG = dChargeImage(sSel) IMG_Temp = sSel iMonImageMOD = RedimentionneImage(iMonImageORG, IMG_Temp..Largeur, IMG_Temp..Hauteur) gxRatio = iMonImageMOD..Largeur / iMonImageMOD..Hauteur sPathTemp = gsPathDataImages + "\" + "Logo" + ".JPG" dSauveImageJPEG(iMonImageMOD, sPathTemp, 90) IMG_Logo = sPathTemp FIN Quand la fenêtre ouvre, le Logo s'affiche. - Je clic une premiere fois et l'image choisie écrase celle dans le rép aPathTemp puis le logo s'update dans la fenêtre. - Je clic une 2e fois, la nouvelle image écrase celle existante dans le rép mais le logo ne s'update pas dans la fenêtre. - Je clic une 3e fois, la nouvelle image écrase celle dans le rép aPathTemp puis le logo s'update dans la fenêtre. Donc 1 fois sur 2, l'image s'update dans la fenêtre. Voici donc mes essais infructueuz;
- J'ai tenté d'effacer le fichier dans le Rép avant de le recréer, pas de succes. - J'ai tenté un rafraichissement de la fenêtre, pas de succès. - La seule chose qui fonctionne est Si je donne un nomdifférent au fichier, ça fonctionne à tout coup mais je ne veux pas accumuler d'images inutilisées donc je veux écraser le fichier existant.
Des idées?
-- Jean Turcotte WX 25 Android 8.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 31,marzo 2020 - 10:33 |
Bonjour,
Peut être comme cela
buffer est un Buffer buffer = fChargeBuffer( sPathTemp ) IMG_Logo = _iproc_apercu()
PROCEDURE INTERNE _iproc_apercu() c est un Champ c <- ChampCrée( DonneGUID(), typImage, 0, 0, 150, 150, Faux ) c..ImageMode = imgHC c = buffer img est une Image dDébutDessin( img, dEffacer + dAvecOpacité ) img.Largeur = c..Largeur img.Hauteur = c..Hauteur dCopie( c, img, 0, 0, c..Largeur, c..Hauteur, 0, 0, img.Largeur, img.Hauteur ) ChampSupprime( c ) RENVOYER img FIN |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.406 mensajes |
|
| Publicado el 31,marzo 2020 - 14:01 |
Je vais tenter le coup Julien, merci! 
-- Jean Turcotte WX 25 Android 9.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.406 mensajes |
|
| Publicado el 31,marzo 2020 - 16:29 |
J'ai testé ton code Julien et ça fonctionne très bien. J'aimerais bien comprendre pourquoi ça fonctionne et pas directement comme réalisé précédemment?
-- Jean Turcotte WX 25 Android 9.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 01,abril 2020 - 08:51 |
Bonjour,
J'avais eu un problème similaire sur l'affichage d'un aperçu de pages PDF d'un même fichier sur une zone répétée https://forum.pcsoft.fr/fr-FR/pcsoft.fr.windev/222371-zone-repetee-apercu-pages-pdf/read.awp
J'imagine que c'est un problème de cache (même source - ici un chemin de même nom - du champ image) La solution de contournement pour moi a été de créer un champ image dynamiquement
c <- ChampCrée( DonneGUID(), typImage, 0, 0, 150, 150, Faux ) De lui affecter un buffer et non un chemin d'image
c = buffer
Et de dessiner une variable image à partir des infos de ce champ
dDébutDessin( img, dEffacer + dAvecOpacité ) img.Largeur = c..Largeur img.Hauteur = c..Hauteur dCopie( c, img, 0, 0, c..Largeur, c..Hauteur, 0, 0, img.Largeur, img.Hauteur ) |
| |
| |
| | | |
|
| | |
| |
| Publicado el 01,abril 2020 - 09:24 |
Bonjour
dans votre code original , essayez ceci :
IMG_Logo = "" IMG_Logo = sPathTemp
bon dev |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.406 mensajes |
|
| Publicado el 01,abril 2020 - 12:59 |
digi12 a écrit :
Bonjour
dans votre code original , essayez ceci :
IMG_Logo = "" IMG_Logo = sPathTemp
bon dev Je l'avais essayé mais sans succès.
Merci Julien d'avoir pris le temps de me répondre, ça va être très utile j'en suis sur. Y a t-il moyen de gérer le cache?
-- Jean Turcotte WX 25 Android 9.0 sur Galaxy S8 Laptop Lenovo I7 12GB Ram |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 134 mensajes |
|
| Publicado el 01,abril 2020 - 13:18 |
Je ne sais pas, dans votre cas de figure la solution préconisée par digi12 est celle donnée par la doc https://doc.pcsoft.fr/fr-FR/?1013136&1013136
Je n'ai pas tout votre code mais en modifiant un peu (sans utilisation de votre procédure RedimentionneImage) pour faire un test
sSel est une chaîne iMonImageORG est une Image iMonImageMOD est une Image IMG_Temp est une Image sPathTemp est chaîne = "" gxRatio est un numérique
sSel = fSélecteur("C:\", "Sélectionnez un fichier...", "Fichiers image (*.jpg)"+TAB+"*.jpg" + RC + "Fichiers image (*.png)" + TAB + "*.png", "*", fselExiste) SI sSel <> "" ALORS iMonImageORG = dChargeImage(sSel) IMG_Temp = sSel gxRatio = IMG_Temp..Largeur / IMG_Temp..Hauteur sPathTemp = "C:\tmp" + "\" + "Logo" + ".JPG" dSauveImageJPEG(IMG_Temp, sPathTemp, 90) IMG_logo = "" IMG_logo = sPathTemp FIN Le IMG_logo = "" me permet bien d'avoir un rafraîchissement de l'image |
| |
| |
| | | |
|
| | | | |
| | |
|