PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Image et champ mémo
Image et champ mémo
Iniciado por Monsieur Serge, 11,ene. 2019 06:35 - 2 respuestas
Miembro registrado
213 mensajes
Publicado el 11,enero 2019 - 06:35
Salutations,

Une question toute simple...

J'ai un champ table dans lequel j'affiche une liste de données et une image.
Style TableAjoute(NomTable, MonFichier.Info1 + Tab + MonFichier.Info2 + Tab + MonFichier.RubriqueImage)

Si je sauvegarde mon image de la façon suivante tout va bien:
MonFichier.RubriqueImage = Chemin\NomImage.Format

Mais mon image doit se trouver sur le disque à son emplacement d'origine sinon Pouf! plus d'image.
Déception...


Je fouille et je me tourne vers HAttacheMémo.
Style HAttacheMémo(MonFichier, RubriqueImage, "Chemin\NomImage.Format", hMémoImg)
Suivi d'un HAjoute ou HModifie naturellement.

Mais MonFichier.RubriqueImage ne passe plus dans mon TableAjoute.


Ma question:
Doit-on absolument "HExtraitMémo" l'image sur disque pour pouvoir l'utiliser?
Ne peut-on assigner l'image directement à la table depuis le mémo?

J'ai fouillé... Manifestement sans succès.

Merci d'avance pour toute réponse.

Serge
Miembro registrado
213 mensajes
Publicado el 14,enero 2019 - 21:33
Après avoir laissé le problème de côté quelques jours je me réponds.
Un autre développeur qui bute sur le problème pourra toujours lire.

1) Description de fichier / rubrique
Pour ma "RubriqueImage" j'ai activé les vignettes.
Vignette de 32x32 pour le besoin de l'exemple.


2) Ajout de l'image dans "MonFichier"
...
MonFichier.RubriqueX = ValeurX
MonFichier.RubriqueY = ValeurY
HAttacheMémo (MonFichier, RubriqueImage, "Chemin\NomImage.Format", hMémoImg)
...
HAjoute ou HModifie naturellement.


3) Assigner la vignette de l'image à "MaTable"
...
HLitPremier (MonFichier, RubriqueX, HBlocageNon)
TANTQUE HTrouve(MonFichier)
...
TableAjoute("MaTable", MonFichier.RubriqueX + Tab + MonFichier.RubriqueY)
MaTable.RubriqueImage[MaTable..Occurence] = MonFichier.RubriqueImage..Vignette[1] // <---------- La magie est ici.
...
HLitSuivant (MonFichier, RubriqueX, HBlocageNon)
FIN
...


-----
Dans cet exemple "MaTable" a 3 colonnes
Colonne 1 pour ValeurX
Colonne 2 pour ValeurY
Colonne 3 pour la vignette de mon image (Colonne de type Image)

-----
Idem pour assigner l'image elle-même à un champ image.
MonChampImageGrandFormat = MonFichier.RubriqueImage
MonChampImagePetitFormat = MonFichier.RubriqueImage..Vignette[1]

-----
Vignette[Indice] prend autant d'indice que de vignettes sur votre image (Description de fichier).
Testé de mon côté avec 4 vignettes de différentes tailles.

-----
Pas besoin de HExtraitMémo et l'image n'a pas à être sur le disque.
Merveilleux!

Si vous avez plus simple à suggérer je suis preneur.

Serge

Bon Windev!
Mensaje modificado, 14,enero 2019 - 21:46
Miembro registrado
213 mensajes
Publicado el 16,enero 2019 - 17:39
Un constat pour un lecteur éventuel...

Windev ne gère pas les vignettes de façon efficace.

Du moins depuis une image de 512x512 pour de petites vignettes de 16x16 ou 32x32.
Sur 250 images je me retrouve avec quelques vignettes tout simplement illisibles.
Une seule vignette illisible c'est trop...

Comme il s'agit d'images fixes dans le temps j'en suis venu à stocker celles-ci selon les dimensions requises.
Par exemple une même image en 16x16, 32x32, 64x64, 128x128, 256x256, 512x512 et 1024x1024.

Jusqu'à 256x256 je demande une vignette de taille équivalente par image.
Par exemple mon image en 32x32 a sa vignette en 32x32.

Maintenant je peux utiliser images et vignettes sans aucune difficulté.
Résultats impeccables sur champ table ou champ arbre.

Je biffe ce problème de ma liste et poursuit mon développement.

Serge

Bon WinDev!