Format des forms..... réajuster du 17pouces dans un 15pouces

TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 - 11 juil. 2005 à 14:21
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 - 31 oct. 2005 à 16:16
Salut les ingénieurs !



Voilà, mon problème est simple : j'ai développé un soft en ajustant mes
forms pour un 17pouces (propriétés 'size' et 'location' en default bien
ajusté), mais y'a des bécanes qui n'ont que des 15pouces et qui vont
avoir besoin du soft aussi, alors si quelqu'un a une bonne méthode, une
astuce, une idée... pour m'éviter de reprendre chaque form et de sortir
la version_15_pouces de mon soft, je lui serait grandement
reconnaissant...


à bon entendeur...
.Maytheforcebewithyou.Maxime.

3 réponses

jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
11 juil. 2005 à 14:33
Bonjour,

Tu peux essayer ceci.



Private Sub Form_Load()

'Résolution correspondant à la form telle qu'elle est en mode conception

Const ResolutionRefX As Long = 640

Const ResolutionRefY As Long = 480

'Rapport entre la résolution actuelle et celle de référence

Dim RatioX As Single

Dim RatioY As Single 'Résolution actuelle

Dim ResolutionX As Long

Dim ResolutionY As Long

ResolutionX = Screen.Width / Screen.TwipsPerPixelX

ResolutionY = Screen.Height / Screen.TwipsPerPixelY

RatioX = ResolutionX / ResolutionRefX

RatioY = ResolutionY / ResolutionRefY

'Adapte les dimensions en fonction de la résolution actuelle

ResizeForResolution RatioX, RatioY

End Sub



Private Sub ResizeForResolution(ByVal RatioX As Single, ByVal RatioY As Single)

Dim ctl As Control

Dim RatioPolices As Single

RatioPolices (RatioX + RatioY) / 2 Me.Width Me.Width * RatioX Me.Height = Me.Height * RatioY

For Each ctl In Me.Controls

If TypeOf ctl Is ComboBox Then

ctl.Move ctl.Left * RatioX, ctl.Top * RatioY, ctl.Width * RatioX

Else

ctl.Move ctl.Left * RatioX, ctl.Top * RatioY, ctl.Width * RatioX, ctl.Height * RatioY

End If

If TypeOf ctl Is Label Then ctl.FontSize = ctl.FontSize * RatioPolices

Next

End Sub



jpleroisse
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
11 juil. 2005 à 14:36
tu parles de la résolution de l'écran ????

une application adaptée au format 640/800-600 / 1024-768 marche aussi bien sur un 15" que sur un 17"



il exite des codes en vb qui détectent la résolution de l'écran !! et
fonction de ça !! utilises le top, left; width height de ta form



Utilise des frames et les onglets pour une meilleurs gestion des places

PS: Si votre problème est résolu, prière de bien vouloir clôturer votre message par une réponse acceptée !
0
TrafMaxime Messages postés 288 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 26 janvier 2012 1
31 oct. 2005 à 16:16
Merci beaucoup à vous, surtout à toi jp, ton code à l'air très futé, mais trop compliqué pour ma petite expérience..

en fait seuls les Pc avec Windows2000 ne geraient pas (un prob de framework pour sûr)..

maintenant, tout le monde est sous XP !
.Maytheforcebewithyou.Maxime.
0