PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → drectangle en fonctions de la résolution de l'écran ??
drectangle en fonctions de la résolution de l'écran ??
Iniciado por obtuli, 08,ago. 2019 14:12 - 2 respuestas
Miembro registrado
961 mensajes
Publicado el 08,agosto 2019 - 14:12
Bonjour,

Sur un champ image, je dispose des marqueurs (rectangles) avec la fonction drectangle.

En premier, je clique sur l'image et je récupéré les coordonnées du clic avec
x = SourisPosX(spImage)
y = SourisPosY(spImage)


Ensuite je dessine le rectangle dont j'enregistre les x1,y1,x2 et y2.

Problème, quand je trace les rectangles enregistrés, selon la résolution de l'écran, les rectangles sont décalés.
D'où cela peut t'il venir ?

merci

OB
Miembro registrado
961 mensajes
Publicado el 08,agosto 2019 - 16:20
Je n'ai pas tout bien compris, mais dans la description de la fenêtre j'ai coché "Ne pas agrandir (mode compatible)"
j'en ai profité pour sélectionner "multi-plateforme / indépendance du DPI)

De cette façon il n'y a aucun décalage, je pensais q'un pixel c'était un pixel quelle que soit la résolution de l'écran.
Miembro registrado
72 mensajes
Publicado el 08,agosto 2019 - 16:49
C'est la mise à l'échelle qui créer le problème je crois.





1 pixel est 1 pixel pour la résolution native.
Par contre s'il est zoomer ca ne fonctionne plus.
Si le facteur est de 200% pour faire simple.

Ton 1 pixel est affiché sur 2 pixels

Si tu fait réapparaitre quelque chose par programmation Windev ne gère pas ce zoom automatiquement.
Alors 1 pixel est 1 pixel
Donc si tu as une image de 50 par 50 déposé sur ta fenêtre, Windev va gérer le zoom automatiquement. Lors de l'affichage elle couvrira sur ton écran 50 *200% X 50*200% donc 100 x 100

Si tu crée une image à côté de 50 par 50 par programmation elle couvrira 50 x 50 donc sera affiché plus petite.


FacteurGrandePolice() est ton ami


Pour exemple fait un
c est un champ
c <- ChampCrée("Image1", typImage, 10, 10, 50, 50)
c = "NomDeLimage.png"

Maintenant exécute le code avec et sans un mise à l'échelle.

Tu vas voir que ton image quand tu est avec une mise à l'échelle est plus petite que si le ratio est à 100%.

Pour contrer ca
FGP est un réel = FacteurGrandePolice()

c est un champ
c <- ChampCrée("Image1", typImage, 10, 10, 50 * FGP , 50 * FGP )
c = "NomDeLimage.png"

Avec ca, ton image aparraissera de la même grosseur par rapport à ton application.

Je ne suis pas expert côté résolution, mais du moins c'est ce que j'en ai compris :P