PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → Remplissage différent suivant les PC
Remplissage différent suivant les PC
Débuté par LucileD, 21 avr. 2021 15:35 - 9 réponses
Posté le 21 avril 2021 - 15:35
Bonjour,
Dans un champ image (image de la France avec les départements) je dois colorier les départements d'une même zone. J'ai utilisé la souris pour déterminer où se situait chaque département j'ai récupéré position x et position y que j'ai stocké dans une table. Sur mon PC pas de problème lorsque je demande de colorier un département avec dremplissage celui-ci est bien colorié de même pour la zone qui regroupe plusieurs départements. Par contre sur le PC de mes collègues tout est décalé.
Pourtant les coordonnées x et y ont été déterminées par rapport à l'image. Quelqu'un aurait-il une idée d'où cela peut provenir ? (cela a déjà fonctionné sur les PC de mes collègues dans des versions antérieures de mon appli peut être avant de passer à Windows 10)
Merci d'avance de votre aide.
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 21 avril 2021 - 17:08
Bonjour,

C'est peut-être une histoire de résolution / dpi.
Dans le dernier Tech Tour - journée 1 - ils ont montré comment faire (parti sur le lasso de l'OCR), c'est un calcul simple (que j'ai oublié).

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Tuto WINDEV sur ma chaîne Youtube
Posté le 21 avril 2021 - 19:29
il y a une option au niveau du projet/des fenêtres pour le choix entre le mode classique au niveau des coordonnées écran OU le nouveau mode 'indépendant/dpi'

Je soupçonne que cette option a été modifiée entre les deux versions, et que ca explique que les anciennes coordonnées ne sont plus au bon endroit.
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 26 avril 2021 - 12:07
Dans options générales WINDEV et onglet général ?

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Tuto WINDEV sur ma chaîne Youtube
Posté le 26 avril 2021 - 14:23
non...

Dans les options du projet, onglé avancé

ET dans les options de la fenêtre, onglet UI...

Le nom des choix a changé avec les versions. En 25, ca demande projet ET mobile ou projet OU mobile, ce qui est clair comme du jus de chaussette
Membre enregistré
1 message
Posté le 27 avril 2021 - 16:10
Merci à vous deux pour vos réponses. J'ai essayé diverses solutions mais j'ai toujours un décalage lorsque je change d'ordinateur.
le décalage est progressif c'est à dire qu'en haut à gauche c'est parfait et cela se décale de plus en plus si on va à droite et en bas.
@Thierry Tillier
Si tu pouvais retrouver le calcul à faire stp ? Comme je ne suis pas en dernière version de WinDev (je suis en 24) je n'ai pas droit au support gratuit ...

--
Cordialement,
LucileD
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 29 avril 2021 - 11:56
Si l'image d'origine a une résolution de 300 DPI et l'écran 96 DPI il faut multiplier les coordonnées (x et y) et les dimensions (largeur et hauteur) par 300 et diviser par 96 :
MonX=MonX *300/96
...
MaLargeur=MaLargeur*300/96


Si la résolution de l'écran n'est pas connue on peut utiliser l'API GetDpiForWindow.
DPI=API("user32","GetDpiForWindow",Handle(MaFenêtre))

MonX=MonX *300/DPI
...
MaLargeur=MaLargeur*300/DPI


Si votre image d'origine ne fait pas 300 dpi de résolution, il faudra remplacer par la bonne valeur (je suppose).

Je n'ai pas testé, c'est ce que j'ai compris du WTT21.
J'espère que ça vous donnera des pistes pour résoudre votre problème.

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Tuto WINDEV sur ma chaîne Youtube
Posté le 29 avril 2021 - 17:27
Merci de votre réponse. J'essaye dès que j'ai un moment et vous redis si cela a fonctionné
Posté le 29 avril 2021 - 22:07
Si j'ai bien compris, les coordonnées d'origine, celles stockées dans le programme, n'ont rien à voir avec les DPI de l'image, et tout à voir avec la taille de l'image dans son champ...

Donc, je suppose que pour une des raisons évoquées plus haut le champ image dans les pc affectés n'a pas toujours la même taille (peut être simplement qu'il est extensible)...

De ce fait, c'est le ratio entre taille d'origine du champ (hauteur ET largeur) et celle au moment de l'exécution (encore hauteur et largeur, vu que les agrandissement ne sont pas forcément identiques) qui devrait être appliqué aux coordonnées enregistrées, facon règle de trois...

Donc,
NouvellePositionX = AnciennePositionX/LargeurDOrigine*LargeurDuChampALExecution
NouvellePositionY = AnciennePositionY/HauteurDOrigine*HauteurDuChampALExecution
Membre enregistré
1 144 messages
Popularité : +50 (142 votes)
Posté le 30 avril 2021 - 10:54
@aArgus, Si j'ai bien compris la dernière WTT21 il y a deux choses à prendre en compte :
Le Couple DPI de l'image (ou PDF =>300DPI par défaut) d'origine et le DPI de l'écran (96 DPI, en général)
et le cas du champ image avec une propriété homothétique, dans cas on peut aussi utiliser la fonction CoordonnéeChampImageVersImage (pour la version 26).

--
Thierry TILLIER
Développeur Windev-Webdev
Formation Windev : https://coursdinfo.teachable.com/
Formation bureautique : https://coursdinfo.net
Tuto WINDEV sur ma chaîne Youtube