| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 23,enero 2020 - 19:28 |
Bonsoir à tous,
J'ai une nouvelle question. Dans ma fenêtre j'ai une image de fond qui représente un cycle d'activités de l'entreprise. Pour chaque étape de ce cycle, j'ai un bouton de commande. Tout est bien positionné dans Windev.
La question est : comment calculer la nouvelle position de chaque champ lorsqu'on change la taille de la fenêtre (qui de fait, agrandit ou réduit l'image) ?
Je sèche un peu et la trigonométrie ne m'aide pas (pour le moment)
Quelqu'un a-t-il eu ce type de problématique à résoudre?
Merci de votre aide Thierry |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 52 mensajes |
|
| Publicado el 24,enero 2020 - 14:42 |
créer deux variables globales ():
Ratiox est numérique = FenIntLarg(WIN_1) Ratioy est numérique = FenIntHaut(WIN_1) Control1_x est numérique = Control_1..X Control1_y est numérique = Control_1..Y
lorsque vous voulez connaître la position relative du curseur:
X = SourisPosX(spFenêtre)*Ratiox/FenIntLarg(WIN_1) Y = SourisPosY(spFenêtre)*Ratioy/FenIntHaut(WIN_1)
ou lors du redimensionner une fenêtre:
Control_1..X=Control1_x/Ratiox*FenIntLarg(WIN_1) Control_1..Y=Control1_y/Ratioy*FenIntHaut(WIN_1)
et voilà
(Je m'excuse si j'écris mal en français)Mensaje modificado, 24,enero 2020 - 15:22 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 24,enero 2020 - 15:21 |
Merci Baltasar pour votre contribution mais cela ne m'aide pas beaucoup. 
L'idée c'est de déplacer un bouton pour qu'il se trouve toujours au même endroit dans l'image même si j'agrandis l'image. Dans l'exemple ci-dessous, mon bouton doit toujours être à côté de "Tunnel", quelle que soit la taille de l'écran.

|
| |
| |
| | | |
|
| | |
| |
Miembro registrado 52 mensajes |
|
| Publicado el 24,enero 2020 - 15:25 |
Je viens de le modifier. Si vous avez besoin que la position soit centrée, je peux modifier le code.Mensaje modificado, 24,enero 2020 - 15:27 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 310 mensajes |
|
| Publicado el 24,enero 2020 - 21:59 |
Bonjour, Créer une fonction de Replacement () des champs que vous appellerez à chaque redimensionnement de la fenêtre
Procedure Replacement()
coefX est un réel = MaFenêtre..largeur / MaFenêtre..largeurInitiale coefY est un réel =MaFenêtre..hauteur / MaFenêtre..hauteurInitiale
monchamp..x=monchamp..xInitial * coefx monchamp..y=monchamp..yInitial * coefy monchamp..largeur = monchamp..largeurInitiale * coefx monchamp..hauteur = monchamp..HauteurInitiale * coefY
voilà pour l'idée générale...
bon devMensaje modificado, 24,enero 2020 - 22:01 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 26,enero 2020 - 13:53 |
Merci à vous deux mais cela ne fonctionne pas tout à fait. Avec la formule de Samir, le X semble correcte mais le Y est toujours trop bas. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 26,enero 2020 - 14:25 |
Le problème du Y tient sûrement au fait que la fenêtre peut être centrée dans l'écran puis agrandit à la taille max de l'écran. Je pense qu'il faut tenir compte de la position y de la fenêtre par rapport à l'écran. Je regarde ça. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 310 mensajes |
|
| Publicado el 26,enero 2020 - 15:15 |
Bonjour, je peux jeter un oeil si vous me transmettez la fenêtre, je verrais plutôt un ajustement à faire si la fenêtre dispose d'une barre de titres.
Bon dev |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 26,enero 2020 - 15:33 |
| En fait le problème est plus complexe que ça, car il ne dépend pas seulement des coordonnées X et Y mais aussi du mode d'agrandissement de l'image dans le champ image (Homothétique) qui a tendance à grossir ou réduire l'image et pas seulement sa dimension. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 52 mensajes |
|
| Publicado el 26,enero 2020 - 23:13 |
Je comprends le problème. Vous souhaitez utiliser "homothétique", ma solution était d'utiliser "étiré"
utiliser "homothétique" (en haut à gauche, non centré):
Vous devez connaître les dimensions de l'image: M_Image_W et M_Image_H
MImage_W est numérique = 250 MImage_H est numérique = 207 Ratiox est numérique = FenIntLarg(WIN_1) Ratioy est numérique = FenIntHaut(WIN_1)
SI MImage_W/MImage_H > Ratiox/Ratioy ALORS Ratioy=MImage_H*Ratiox/MImage_W SINON Ratiox=MImage_W*Ratioy/MImage_H FIN Control1_x est numérique = Control_1..X Control1_y est numérique = Control_1..Y
--Redimensionner--
SI FenIntLarg(WIN_1)/FenIntHaut(WIN_1)>=MImage_W/MImage_H ALORS Control_1..X=Control1_x*FenIntHaut(WIN_1)/Ratioy Control_1..Y=Control1_y*FenIntHaut(WIN_1)/Ratioy WIN_1..Caption=FenIntHaut(WIN_1)/Ratioy SINON Control_1..X=Control1_x*FenIntLarg(WIN_1)/Ratiox Control_1..Y=Control1_y*FenIntLarg(WIN_1)/Ratiox WIN_1..Caption=FenIntLarg(WIN_1)/Ratiox FIN
(L'idée de SAMIR est très bonne, redimensionnez la taille du contrôle)Mensaje modificado, 26,enero 2020 - 23:17 |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 52 mensajes |
|
| Publicado el 27,enero 2020 - 09:55 |
supprimer les lignes: //WIN_1..Caption=FenIntHaut(WIN_1)/Ratioy //WIN_1..Caption=FenIntLarg(WIN_1)/Ratiox |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 8 mensajes |
|
| Publicado el 27,enero 2020 - 10:00 |
| Bonjour à tous je profite de occasion de demander comment je peut créer un champs tableau par programmation, le placer au coordonnées voulue, et que cette table m'affiche une requête. merci d'avant. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 8 mensajes |
|
| Publicado el 27,enero 2020 - 10:27 |
Rostand LOLO a écrit : > Bonjour à tous je profite de occasion de demander comment je peut créer un champs tableau par programmation, le placer au coordonnées voulue, et que cette table m'affiche une requête. merci d'avant. |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 4.362 mensajes |
|
| Publicado el 27,enero 2020 - 10:49 |
Bonjour LOLO > Bonjour à tous je profite de occasion de demander comment je peut créer un champs tableau par programmation, le placer au coordonnées voulue, et que cette table m'affiche une requête. merci d'avant. Déjà en créant un post pour éviter de polluer celui des autres
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 1.173 mensajes |
|
| Publicado el 27,enero 2020 - 19:53 |
| |
| |
| | | |
|
| | |