OVH Cloud OVH Cloud

position dans une feuille

2 réponses
Avatar
gilles
salut,

question digne d'un débutant : jusqu'à présent je jonglais au pif pour
calculer la position des composants dans une form. Et puis là un truc
tout bête, une form avec 1 ou plusieurs boutons superposés. Je veux
juste que la fenêtre se termine sous le dernier bouton présent. Je fait
:
Me.Height=cmdRun.Top + cmdRun.height + 100
histoire que la hauteur de la form soit la position du bouton + sa
hauteur + une marge. É bé, mon bouton est tronqué, on voie que le haut.
Ou est l'erreur ?

merci


--
Embryon de site : http://gilles.ronsin.free.fr
Nouveau: un JukeBox pour DaemonTool
Mon utilitaire de BDR V1.1.0 :
http://gilles.ronsin.free.fr/aregtool.htm
Les gens qui ne rient jamais, ne sont pas des gens sérieux.

2 réponses

Avatar
Zoury
Mais dans un concept plus général, il m'apparaîtrait plus logique de positionner
les contrôles en fonction de la taille de la fenêtre et non pas l'inverse.. de
cette façon ton interface pourrait supporter différentes résolution d'écran sans
problème..

Essaie le projet suivant..
'***
' Form1
' 1 TextBox
' 1 CommandButton
Option Explicit

Private Const MARGE As Byte = 80

Private Sub ResizeMain()

Text1.Move MARGE, _
MARGE, _
IIf(Me.ScaleWidth - (MARGE * 2) < 0, 0, Me.ScaleWidth - (MARGE *
2)), _
IIf(Me.ScaleHeight - Command1.Height - (MARGE * 3) < 0, 0,
Me.ScaleHeight - Command1.Height - (MARGE * 3))

Command1.Move IIf(Me.ScaleWidth - Command1.Width - MARGE <= 0, 0,
Me.ScaleWidth - Command1.Width - MARGE), _
IIf(Me.ScaleHeight - Command1.Height - MARGE <= 0, 0,
Me.ScaleHeight - Command1.Height - MARGE), _
1215, _
375

End Sub

Private Sub Form_Load()
ResizeMain
End Sub

Private Sub Form_Resize()
ResizeMain
End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
"gilles" wrote in message news:
: salut,
:
: question digne d'un débutant : jusqu'à présent je jonglais au pif pour
: calculer la position des composants dans une form. Et puis là un truc
: tout bête, une form avec 1 ou plusieurs boutons superposés. Je veux
: juste que la fenêtre se termine sous le dernier bouton présent. Je fait
: :
: Me.Height=cmdRun.Top + cmdRun.height + 100
: histoire que la hauteur de la form soit la position du bouton + sa
: hauteur + une marge. É bé, mon bouton est tronqué, on voie que le haut.
: Ou est l'erreur ?
:
: merci
:
:
: --
: Embryon de site : http://gilles.ronsin.free.fr
: Nouveau: un JukeBox pour DaemonTool
: Mon utilitaire de BDR V1.1.0 :
: http://gilles.ronsin.free.fr/aregtool.htm
: Les gens qui ne rient jamais, ne sont pas des gens sérieux.
:
Avatar
gilles
"Zoury" a exprimé avec précision :
Re
Mais dans un concept plus général, il m'apparaîtrait plus logique de
positionner les contrôles en fonction de la taille de la fenêtre et non pas
l'inverse.. de cette façon ton interface pourrait supporter différentes
résolution d'écran sans problème..


Tu as raison dans l'absolu, mais là j'ai juste besoin de faire un petit
lanceur dans le style de celui des jeux LucasArt... mais je stocke le
code pour mes autres appli.

Juste pour info

Private Sub Form_Load()
ResizeMain
End Sub
Private Sub Form_Resize()
ResizeMain
End Sub



Je crois que c'est inutile dans le form_load car l'évenement
form_resize est de toute façon appellé à l'affichage de la form, non ?

Encore merci pour ta dévotion au VB


--
Embryon de site : http://gilles.ronsin.free.fr
Nouveau: un JukeBox pour DaemonTool
Mon utilitaire de BDR V1.1.0 :
http://gilles.ronsin.free.fr/aregtool.htm
Les gens qui ne rient jamais, ne sont pas des gens sérieux.