Résolution Ecran

SEB83200 Messages postés 34 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 11 juin 2013 - 27 juil. 2010 à 09:07
WAHID170 Messages postés 1 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 15 février 2012 - 15 févr. 2012 à 10:57
Bonjour,

J'ai cherché en vain dans l'ensemble des forums du site mais je n'ai pas trouver la réponse a ma question.


J'ai developpé une application en 1440 * 900 mais bien evidemment sur une résolution plus petite mes forms sont coupés...

Exite-t-il une fontion de l'appi windows qui permet de redimmensionner automatiquement les forms et les contrôles ?


Sinon coment faites-vous face à ce probléme?

Merci beaucoup

16 réponses

gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
27 juil. 2010 à 09:17
Bonjour,

if  résolution client trop petite then
Messagebox.Show ( blalala)
exit 


a+
google est mon ami quand tu cherches quelque chose demande lui clairement
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
27 juil. 2010 à 09:49
sinon tu vas devoir tout re-dessiner

@+
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 juil. 2010 à 10:26
Salut
Oui, c'est une tâche ardue.
Il y a des solutions moins chiantes que de tout recalculer :
Exemple <dans cette source> facilement retranscrivable sous VB6 :
Tu insères ces classes dans ton projet.
Tu dessines ta forme proprement, en mettant les objets à la bonne position, puis tu déclares la méthode de déplacement - redimensionnement de chaque objet par une simple ligne de code.
Les objets pourront rester accrochés au bord droit, en bas, s'allonger ou se rétrécir ...

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
SEB83200 Messages postés 34 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 11 juin 2013
27 juil. 2010 à 15:24
Merci pour vos réponses.

Mais vous faites comment alors vous dans vos applications ?

Vous changer la résolution des écrans de vos utilisateurs ?

Merci
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
SEB83200 Messages postés 34 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 11 juin 2013
27 juil. 2010 à 15:37
Salut jack,

J'ai regarder ton lien mais je ne comprend pas vraiment.

Comment fait-on pour l'utiliser ?

Merci
0
scromania Messages postés 452 Date d'inscription dimanche 20 août 2006 Statut Membre Dernière intervention 11 janvier 2013 9
27 juil. 2010 à 15:39
je code des le depart avec la position des objets . je travail avec une resolution 1280 * 1024 et je bloc l'agrandissement de la fenetre
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
27 juil. 2010 à 16:49
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 juil. 2010 à 17:51
Le lien que je t'ai donné fournit un exemple concret : joue avec pour voir le résultat et regarde dans le code pour voir LA ligne de paramétrage à mettre PAR objet : pas compliqué à utiliser, plus ardu à décortiquer.
Dans le AnchorStyle, tu as juste à lui dire par quels bords il doit rester accroché.
0
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010
27 juil. 2010 à 21:33
Bonjour

Pour ma part cela faire plus 15 ans que je travail en VB, j'ai commencé avec VB3.0 puis VB4 VB5 VB6 pour basculer en VB9 et maintenant VB10 et lorsque la page est assez haute, je tape du code à chaque page pour replacer les contrôles à l'ecran en fonction de la grandeur de l'ecran, sinon le logiciel perd de sa valeur au niveau esthétique !

Bon courage

PS : Ma methode est pas forcement la bonne .... mais je suis un peu dingue ....

Stephane
0
SEB83200 Messages postés 34 Date d'inscription lundi 16 juin 2008 Statut Membre Dernière intervention 11 juin 2013
28 juil. 2010 à 10:52
Bonjour Radsie,

Aurais tu un exemple ou un bout de code a me montrer pour voir comment tu fais s'il te plait ?

Merci
0
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010
2 août 2010 à 15:00
Bonjour

En fait pour chaque feuille tu mets le code dans l'evenement Form.Resize pour que les contrôles soient
automatiquement replacés en fonction de la résolution de l'ecran.

Après tu utilise les 2 paramètres Screen.width et Screen.height comme reference pour la largeur et la hauteur.

Ex : Bouton_Enregistrer.left=Screen.width/30
Bouton_Enregistrer.height=Screen.height/40

Après tu aligne les autres contrôles sur le précedent et ainsi de suite...
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
2 août 2010 à 19:38
@radsie>

Tu te casse vraiment la tête pour rien si tu redimentionne encore tes contrôles comme ca en .Net, il existe les propriétés 'Anchor' et 'Dock'.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
radsie Messages postés 37 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 2 décembre 2010
4 août 2010 à 09:03
@Mayzz

Exacte mais en VB6 Anchor et Dock n'existait pas !

Par contre Anchor et Dock ne corrige pas tout désolé !
En fonction de la resolution de l'ecran 4/3 ou 16/9 le rendu n'est pas le même
si tu te contente de Anchor et Dock ....

cdt

Radsie
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
4 août 2010 à 20:10

Pour ma part cela faire plus 15 ans que je travail en VB, j'ai commencé avec VB3.0 puis VB4 VB5 VB6 pour basculer en VB9 et maintenant VB10 et lorsque la page est assez haute, je tape du code à chaque page pour replacer les contrôles à l'ecran en fonction de la grandeur de l'ecran, sinon le logiciel perd de sa valeur au niveau esthétique !


Je sais bien que c'est propriétés n'existait pas en vb6, ce sont tes dires qui mon laisser pensé que tu redimensionnais tes contrôles par code dans tes application .Net.

Par contre Anchor et Dock ne corrige pas tout désolé !
En fonction de la resolution de l'ecran 4/3 ou 16/9 le rendu n'est pas le même
si tu te contente de Anchor et Dock ....


Pour ma part, jamais une ligne pour une interface en .Net, je ne vois pas pourquoi, il existe les propriétés Dock, Anchor, mais aussi AutoScroll (comme tu dis si la page est trop haute) et cette dernière est valable pour la page comme pour les contrôles conteneurs. Il y a aussi toute une gamme de contrôles, comme le SplitConatainer, le LayoutPanel, FlowLayoutPanel, TableLayoutPanel. Je ne vois pas en quoi saisir des lignes de code pourrait faire mieux que ce que nous offre VS à la base. Pour moi c'est une perte de temps inutile.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
VbNicoG Messages postés 127 Date d'inscription vendredi 27 juin 2008 Statut Membre Dernière intervention 6 septembre 2019
13 août 2010 à 17:05
Bonjour,

Perso, je suis parti d'une base 1024x768. Je dessine tout dans ce format.
Au démarrage de l'application je récupère la résolution courante de l'écran.
Puis au chargement de chaque form, j'appelle une fonction récursive qui retaille (width, height) à partir de la form tous les controls enfants de cette form avec le ratio de la résolution actuelle par rapport à ma résolution de base.
Ca marche du tonnerre et c'est très simple.
Deux contraines :
- quand tu dessines, tous tes objets doivent être dockés par rapport à un autre quite à créer des panels vides pour espacer certains objets.
- Pour la taille de police, je n'ai pas trouvé de ratio commun car ça change en fonction du font utilisé, surtout si t'en as plein de différents. Donc je l'ai fait par test.
Et sincèrement, je n'ai rien trouvé de plus simple et qui marche aussi bien. En plus, ça ne ralenti pas le temps de chargement et pourtant j'ai une ribambelle de controls.

Un exemple vite fait...
IsParent = true quand c'est la form, je ne détaille pas tout mais pour la récursivité de la fonction, il faut tester le type du control, si celui ci peut avoir des enfants ou non, pas la peine de chercher les controls dans un label...

Public Sub ResizeObjects(ByRef MyControl As Control, ByVal IsParent As Boolean)
ScreenWidth as integer = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
ScreenHeight as integer = System.Windows.Forms.Screen.PrimaryScreen.Bounds.Height

CoefWidth as single = CSng(ScreenWidth / 1024)
CoefHeight as single = CSng(ScreenHeight / 768)

For Each obj In MyControl.Controls
MyControl.Height = CInt(Math.Floor(CDbl(CSng(MyControl.Height) * CoefHeight)))
 MyControl.Width = CInt(Math.Floor(CDbl(CSng(MyControl.Width) * CoefWidth)))
ResizeObjects(MyControl, false)
next


J'espère que ça peut aider...
0
WAHID170 Messages postés 1 Date d'inscription mardi 7 février 2012 Statut Membre Dernière intervention 15 février 2012
15 févr. 2012 à 10:57
BONJOUR
MERCI A VBNICOG , j avais le meme probleme et maintenant j ai un idee pour resoudre mon brobleme
0
Rejoignez-nous