linuxfred21
Messages postés15Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention20 décembre 2007
-
10 nov. 2007 à 13:42
linuxfred21
Messages postés15Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention20 décembre 2007
-
11 nov. 2007 à 14:32
Bonjour à toutes et à tous !
Voilà, j'ai un petit problème car j'ai parcouru la plupart des forums qui traitent du Visual Basic mais je n'ai pas vraiment trouvé de solution à mon problème.
En fait, j'ai une form que j'ai agrandie en plein écran et j'ai à l'intérieur trois lignes de quatre PictureBox.
Je souhaiterais les centrer horizontalement et automatiquement dans ma form.
Y a-t-il un attribut ou une propriété permettant de faire cela ?
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 11 nov. 2007 à 08:39
Bon..
Nous sommes dimanche. Alors...un peu d'aide (arithmétique)...
Ton erreur est de diviser ta largeur disponible par le nombre d'images !
On y va :
soit Nbi le nombre d'images de largeur Li à centrer horizontalement sur une feuille de largeur LF
Appelons d la distance qui doit séparer une image d'une autre et/ou de chacun des 2 bords de la feuille
comment calculer d ?
d = (LF - (Nbi * Li))/(Nbi + 1)
(J'ai vu plus haut une division par 4 pour 4 images... je ne sais ç quoi tu dédies le résultat de cette division....)
d est donc la distance qui sépare la 1ère image du bord gauche de ta feuille. C'est également celle qui sépare le bord droit de chaque image du bord gauche de l'image suivante.
Tu vois bien que je n'ai pas utilisé ici un seul sou de code ...
Je te laisse continuer, maintenant, si tu veux bien ...
linuxfred21
Messages postés15Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention20 décembre 2007 10 nov. 2007 à 15:16
Bonjour !
Entièrement d'accord mais c'est malheureusement ce que j'ai tenté la première fois mais sans succès.
En utilisant ce type de code, les proportions ne sont pas respectées et les images se chevauchent malgré tout :
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 nov. 2007 à 18:01
1) le centrage doit être fait après chaque redimensionnement, bien évidemment (et Me.WindowState = FormWindowState.Maximized est un redimensionnement)
2) tu n'as pas répondu à la question : Avec quelles échelles en place pour la PictureBox et pour la Form ?
Echelle, c'est en Français. Les British disent ScaleMode ...
linuxfred21
Messages postés15Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention20 décembre 2007 10 nov. 2007 à 21:48
Bonsoir !
Ma Form fait 1112X729 pixels (taille de ma zone de travail où se trouvent mes différentes PictureBox) et se trouve à 15X15 pixels du bord gauche de l'écran dans mon espace de création.
Mes PictureBox font quant à eux chacun 200X200 pixels.
J'ai essayé le centrage après avoir redimmensionné ma Form.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 nov. 2007 à 22:31
Question (bien que tu n'aies toujours pas répondu à la mienne, pourtant claire...) :
Avec une seule PictureBox : parviens-tu à la centrer ?
cette question n'appelle que 2 réponses possibles : Oui ou Non.
Si non : ma question précédente (échelles) a toute son importance
Si oui : en centrer plusieurs horizontalement (sur une même horizontale) n'est alors que de l'application arithmétique élémentaire ... avant tout code informatique à proprement parler
Appliquer maintenant un centrage également vertical répond au même principe, en calculant aussi avec les hauteurs...
Prends une feuille de papier et un crayon, avant de coder, alors...
linuxfred21
Messages postés15Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention20 décembre 2007 10 nov. 2007 à 22:56
Bonsoir !
Désolé de ne pas avoir répondu plus clairement avant.
En fait, je n'ai rien modifié à ce niveau, je suis en mode normal, c'est-à-dire 1/1 dans mes paramètres.
Je parviens en effet à centrer ma première PictureBox en divisant par 2 ou par 4 mais ce sont les autres PictureBox qui ne suivent pas et qui se chevauchent lorsque je demande à ce qu'elles soient centrées.
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 10 nov. 2007 à 23:23
Je m'en doutais un peu ...
Alors ? ====>>> arithmétique pure (la prog ne vient qu'après, et pour lui donner ton raisonnement artithmétique.... l'as-tu fait, ce raisonnement qui ne
fait nullement appel, à ce stade, à des connaissances d'une syntaxe de développement ?... Commence donc par là !)
linuxfred21
Messages postés15Date d'inscriptionmardi 15 juin 2004StatutMembreDernière intervention20 décembre 2007 10 nov. 2007 à 23:36
Justement, je viens de refaire le calcul mais malheureusement le chevauchement survient toujours à partir de la seconde PictureBox.
C'est à se demander si le redimensionnement ne décale pas tout, bien qu'il soit réalisé avant le calcul pour positionner mes PictureBox.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 nov. 2007 à 02:37
salut,
1) pas de scalewidth scaleheight sous dotnet?
2) bien que le principe me gêne un peu..., pourquoi ne pas placer tes 4 PB dans un conteneur?
3) pas d'objet ou de propriété Anchor en dotnet ? (je l'ai bien vu quelquepart pourtant...)
je trouve dommage qu'on lise si peu de code malgré l'impression de tant de tests...
bonne soirée ++
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 nov. 2007 à 11:48
salut,
ah là jmfmarques j'sis pas trop d'accord avec ce calcul, du moins son utilité
énoncé : En fait, j'ai une form que j'ai agrandie en plein écran et j'ai à l'intérieur trois lignes de quatre PictureBox.
(tien à la relecture je ne dais pas s'il y a 4 ou 12 PB)
dans tous les cas considérons l'ensemble des objects, donc un rectangle (de 12, de 4 ou même de 1)
on ne va pas revenir sur "centrer UNE image", tu l'as déjà fait
donc il suffit de multiplier height par le nombre de lignes, et width par le nombre de colonnes
on a alors la position de la première PB
et de là aucun autre calcul, la p2 est au top de la p1, left à .left+.width de la p1
p3 et p4 de p2 et p3
top p5 est à .top+.height de la p1 et left à .left de p2 ou à .left+.width de la p1 (c'est pareil), etc pour la suite
rien besoin de plus
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
jmfmarques
Messages postés7666Date d'inscriptionsamedi 5 novembre 2005StatutMembreDernière intervention22 août 201427 11 nov. 2007 à 12:21
Bonjour PCPT,
j'ai montré comment centrer horizontalement
le principe du calcul pour le centrage vertical est, s'il y a plusieurs rangées à centrer verticalement, rigoureusement le même...
C'est celui que j'applique dans un visualiteur d'album bien plus complexe où, de surcroît, les images sont tantôt plus hautes que larges, tantôt plus larges que hautes... et toutes à redimensionner pour avoir toujours le même nombre d'images par rangée...
Ce n'est que de l'arithmétique et c'est la même que celle qu'applique n'importe quel petit encadreur aux fins fonds de l'Inde.
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 11 nov. 2007 à 13:06
tout à fait d'accord pour des images (ou peintures avec ou sans cadre ^^) de tailles différentes, mais me semble trop complexe inutilement pour des tailles rigoureusement les mêmes.
une fois le premier calcul fait ce n'est plus la peine de le refaire puisque la référence est alors correcte
bonne journée @+ tard
Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp