Objet fixer coordonnées

Bonjour,

Je débute dans 4D et je rencontre le problème suivant : pour les besoins de mon entreprise, je dois faire en sorte que le bouton de fermeture de mes formulaires soit à droite de l’écran, et ce quelle que soit sa résolution. Il faut également que le formulaire s’affiche en plein écran par défaut.

J’ai d’abord essayé de mettre la propriété “Dim. horizontal” à “Déplacer” pour mon bouton, mais il ne se colle pas à droite de ma fenêtre même lorsque je met mon MAXIMISER FENETRE dans la méthode du bouton (donc après son initialisation). Je précise que le bouton est pourtant collé à droite du formulaire dans l’éditeur.

J’ai donc tenté de coder une méthode permettant de coller les objets à droite de la fenêtre (ou plutôt de l’écran, mais cela revient au même en plein écran) :

  // OBJET ALIGNER DROITE
  // Méthode permettant d'aligner un objet formulaire à droite de la fenêtre

  // IN : [Entier long] correspondant à l'offset (défaut 40px)
Si (Chaine($1)#"")
	$offset:=$1
Sinon 
	$offset:=40
Fin de si 

OBJET LIRE COORDONNEES(Self->;$gauche;$haut;$droite;$bas)
$largeurObjet:=$droite-$gauche
$largeurEcran:=Largeur ecran

$nouveauDroite:=$largeurEcran-$offset
$nouveauGauche:=$nouveauDroite-$largeurObjet

OBJET FIXER COORDONNEES(Self->;$nouveauGauche;$haut;$nouveauDroite;$bas)

Cela n’a pas fonctionné, l’objet se place au delà des limites de l’écran, bien plus à droite. Je précise que lorsque je refais un OBJET LIRE COORDONNÉES en débug, la variable “droite” se valorise à 1880, et mon écran a une largeur de 1920 pixels. En théorie, l’objet devrait donc se trouver dans les limites de mon écran.

Quelqu’un aurait il une idée de ce qui pourrait expliquer ce dysfonctionnement de mon programme ? Je vous remercie par avance :slight_smile:.

Bonjour et bienvenue

Précision importante, vous êtes sur macOS ou Windows ?

Comme vous l’avez surement noté, le comportement de la commande Largeur écran peut différer selon la plate-forme.

Avez vous essayé de passer le paramètre optionnel “*” ?

Bonjour Vincent,

Tout d’abord merci pour votre réponse.

Mon OS est Windows. Je viens de tester à nouveau en utilisant le paramètre optionnel “*”, le comportement est identique : l’objet s’affiche en dehors des limites de l’écran.

Edit : il semblerait que le problème vienne de la commande “MAXIMISER FENETRE”. En effet, lorsque je commente cette ligne, que je lance l’application et que je maximise la fenêtre “à la main”, en cliquant sur l’icône prévue à cet effet, mon bouton se trouve au bon endroit.

Bonjour Leo,
si tu veux obtenir un redimentionnement “tel qu’à la souris”, il faut utiliser REDIMENSIONNER FENETRE FORMULAIRE

1 Like

J’allais poster l’edit2 qui disait la même chose ; comme quoi en grattant un peu on trouve :slight_smile:

Merci de ta réponse Arnaud !