IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Comment déplacer plusieurs champs d'un état de quelques pixels/mm en une fois ?


Sujet :

WinDev

  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    927
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 927
    Points : 2 113
    Points
    2 113
    Par défaut Comment déplacer plusieurs champs d'un état de quelques pixels/mm en une fois ?
    Bonjour,

    Comment feriez-vous pour déplacer plusieurs libellés/rubriques de quelques mm en gardant la cohérence, comme si on sélectionnait tous ces champs et qu'on les bougeait à la souris ?

    S'il y a une chose que je trouve mal faite dans les états, c'est bien le positionnement des éléments dans l'état de manière précise.

    - Les boutons d'alignement sont géniaux mais pas assez complet : si on sélectionne plusieurs champs et qu'on clique "aligner bord haut", tous les champs seront alignés sur le bord haut et pas uniquement les champs du haut de notre sélection.
    - Le déplacement avec les flèches de clavier n'est pas assez précis et je ne connais pas de touche clavier qui permette de rendre ce déplacement plus précis mais l'inverse bien.
    - On peut placer des repères mais ce n'est pas possible de choisir la position en mm de ces repères : il faut le faire à la main (autant dire à l'aveuglette quand on veut être précis).
    - Si on a qu'un élément à déplacer, on peut choisir la position (X, Y) mais c'est plus compliqué si on en a plusieurs.

    Le déplacement à la souris est ce que j'utilise, en perdant plusieurs minutes à jouer (avec shift enfoncé pour ne pas tenir compte du magnétisme) en essayant d'être le plus zen possible pour bouger la souris le moins possible... Il y a le zoom qui fonctionne plus ou moins (si ça ne plante pas et que le résultat en zoom 100% est bien identique à celui qu'on avait obtenu pendant le zoom).

    Avez-vous d'autres "astuces" svp ?
    "If you can't teach it then you don't know it."

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Bonsoir à tous,

    je me permets de remonter ce sujet car je cherche également une méthode "simple" pour déplacer des champs sur un état.

    J'ai un ensemble de champs (une vingtaine) qui sont en dehors de la page. Je voudrais pouvoir selon certains cas, les afficher en les remettant sur la page (les champs sont "alignés"). J'ai essayé en les mettant dans un groupe, mais Windev les empile tous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRP_MonGroupe..X -= 200
    Chaque champ se retrouve avec son X égal au Xinitial du premier champ - 200.

    J'ai bien la solution de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    LiB_Lib01..x -= 200
    LiB_Lib02..x -= 200
    ...
    LiB_Lib20..x -= 200
    Mais je trouve ça lourdingue...

    Si vous avez des idées, je suis preneur.

    Merci d'avance.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    486
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 486
    Points : 875
    Points
    875
    Par défaut
    Je ne sais pas si cela peut marcher avec WinDev, mais le bon moyen de déplacer des champs à l'intérieur d'une fenêtre (child window) est d'utiliser l'API BeginDeferWindowPos qui est documentée ici :
    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

  4. #4
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Merci pour ton intervention, Patrice, mais c'est sur un état que j'ai besoin de faire une translation de champs.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  5. #5
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Pourquoi ne pas fusionner les 2 solutions proposées :
    1. Mettre les champs dans un groupe
    2. Lister les champs du groupe via une boucle (Fonction EnumèreChamp) et dans cette boucle, réaliser le déplacement

  6. #6
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Je n'avais pas du tout pensé à cela. Je vais tester et je te donne le résultat de mes cogitations.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  7. #7
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    @Narwe : +1 : ça marche nickel !!! J'ai repris et adapté l'exemple de l'aide et c'est tip-top.

    Juste 2 détails :
    1 : bien mettre le nom de l'état entre guillemets :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sInfoChamp est une chaîne = EnumèreChamp("etat_fact1", nIndice) et pas sInfoChamp est une chaîne = EnumèreChamp(etat_fact1, nIndice)
    2 : Dans l'aide, il est stipulé qu'il vaut mieux utiliser gpwEnumèreChamp en lieu et place de EnumèreChamp :
    Remarque : Dans la plupart des cas, il est conseillé d'utiliser la fonction gpwEnumèreChamp.
    Je dois être dans le cas qui n'est pas dans la plupart car gpwEnumèreChamp me renvoie une chaîne vide..
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

Discussions similaires

  1. Comment vérifier plusieurs champs sans répéter les if
    Par MikeV dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 23/06/2008, 14h18
  2. Comment déplacer un champs ou une image
    Par ivan_ivanoe dans le forum WinDev
    Réponses: 1
    Dernier message: 23/06/2007, 00h40
  3. comment concatener plusieurs champs?
    Par polianita dans le forum Access
    Réponses: 1
    Dernier message: 07/07/2006, 16h46
  4. [VB.NET] Comment accéder à des champs d'un état
    Par olbi dans le forum Windows Forms
    Réponses: 6
    Dernier message: 07/04/2006, 11h50
  5. Comment exclure un champ d'un état avec Crystal report 8.5??
    Par Joachim dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 02/06/2005, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo