IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Problème lors du changement de résolution d'écran


Sujet :

VB 6 et antérieur

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut Problème lors du changement de résolution d'écran
    Bonjour,

    Après quelques heures de recherche sur ce sujet, j'ai pu remarquer qu'il n'y avait pas de solution à ce problème.

    Pourtant, avez-vous dans votre chapeau un lapin qui m'aiderait à trouver une solution à ce problème.

    J'ai donc un programme simple (1 form) en vb6 qui sera mis à disposition via le site portail de mon entreprise.

    L'installation se passe parfaitement mais vu que tous les pc sont différents point de vue de la résolution d'écran , l'affichage est surprenant sur certaines machines.

    Merci d'avance pour l'aide apportée.

    yangoal25

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Citation Envoyé par yangoal25
    l'affichage est surprenant sur certaines machines.
    c'est à dire ... ?
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Surprenant on te dit !

  4. #4
    Rédacteur
    Avatar de omen999
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 296
    Points : 3 549
    Points
    3 549
    Par défaut
    si c'est simplement un souci de placement de la form sur l'écran, mettre la propriété StartUpPosition de la form sur vbStartUpCenterScreen (2) centrera celle-ci sur l'écran
    mais c'est peut-être +surprenant que ce problème basique
    nomen omen, nemo non omen - Consultez la FAQ VBScript et les cours et tutoriels VBScript
    le plus terrible lorsqu'une voiture renverse un piéton, c'est que ce sont les freins qui hurlent. (ramón)
    pas de questions techniques par mp

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Et on peut aller très loin dans le surprenant ! Mieux vaut ne pas extrapoler à mon avis...

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Surprenant dans le sens de la position des objets sur la form.

    J'aimerais que les différents objets placés sur la form reste au même endroit quel que soit la résolution de l'écran qui accueille mon application.

    Congé demain, donc j'essaierai la manipulation dite plus haut mercredi.

    Merci pour vos réponses.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par omen999
    si c'est simplement un souci de placement de la form sur l'écran, mettre la propriété StartUpPosition de la form sur vbStartUpCenterScreen (2) centrera celle-ci sur l'écran
    mais c'est peut-être +surprenant que ce problème basique
    J'ai essayé cette option mais cela ne fonctionne pas.

    Je crois que cela va être plus compliqué que prévu.

    Quand j'installe le logiciel sur des machines qui n'ont pas la même résolution d'écran que moi, l'affichage des objets de la form est différent. Le positionnement de tous ces objets ne correspond plus à ce que j'ai conçu.

    Pour être concret, les objets se déplacent tous vers le haut et à gauche.

    Ne faudrait-il pas jouer avec la position et la taille des objets? Je crois qu'en faisant une proportion de ces éléments il y aurait moyen.

    Vous avez une idée de code? ou un site qui le proposerait?

    merci

  8. #8
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    Pour tout ce qui est application graphique, toutes fenêtres à afficher sur l'écran, on place la fenêtre principale à l'aide du point en haut à gauche de l'écran. Le pixel le plus en haut et à gauche. On s'en sert comme référence, et on calule la position du point en haut à gauche de la fenêtre en pourcentage de la taille totale de l'ecran. Et on définis la taille de la fenêtre en pourcentage de la taille de l'écran.
    Pour les objets à l'intérieur de la fenêtre, on procède de la même façon en prenant comme référence la fenêtre, comme cela on n'a pas de problème avec la résolution de l'écran.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Le problème que je rencontrais est résolu.

    Pour rappel, il s'agissait d'un problème d'affichage de mes objets dans la form lorsque je changeais la résolution de mon écran. (Car le logiciel sera mis en ligne et donc, les différents utilisateurs ont une résolution d'écran différente).

    Gràce à Cédric600, j'ai compris qu'il s'agissait d'un problème de redimension des objets.

    La solution que j'ai trouvée n'est pas la plus propre possible mais elle fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    Option Explicit
    Dim varTop, varLeft, varHaut, varGauche, varPolice As Variant
     
    Private Sub Form_Load()
    'Recherche de la résolution d'écran
    varTop = Screen.Height / Screen.TwipsPerPixelY
    varLeft = Screen.Width / Screen.TwipsPerPixelX
     
    'Proportion qui vont modifier l'emplacement des objets
    varHaut = varTop / 768  'C'est la hauteur de résolution avec laquelle j'ai créé mon soft
    varGauche = varLeft / 1024  'C'est la largeur de résolution avec laquelle j'ai créé mon soft
     
    varPolice = (varTop + varLeft) / 1792 'Proportion qui va modifier la taille de police mais aussi la taille des objets
     
    If varTop <> 768 And varLeft <> 1024 Then   'Si la résolution est différente avec celle que j'ai utilisée
     
    Label1.Left = Label1.Left * varGauche
    Label1.Top = Label1.Top * varHaut
    Label1.FontSize = Label1.FontSize * varPolice
    Label1.FontUnderline = True
     
    Command1.Left = Command1.Left * varGauche
    Command1.Top = Command1.Top * varHaut
    Command1.FontSize = Command1.FontSize * varPolice
    Command1.Height = Command1.Height * varPolice
    Command1.Width = Command1.Width * varPolice
     
    Label3.Left = Label3.Left * varGauche
    Label3.Top = Label3.Top * varHaut
    Label3.FontSize = Label3.FontSize * varPolice
     
    'etc ... pour chaque objet de la feuille
    Ce code est long et j'imagine qu'il faudrait trouver une autre solution pour un logiciel plus important.

    Merci Cédric

    yangoal25

  10. #10
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Points : 4 061
    Points
    4 061
    Par défaut
    De rien.
    Si tu répétes plusieurs fois le même code, tu pourrais peut être le mettre dans une fonction que tu appelerais pour chaque objet.
    Pourquoi faire compliqué lorsque l'on peut faire encore plus compliqué.

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 35
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par cedric600
    De rien.
    Si tu répétes plusieurs fois le même code, tu pourrais peut être le mettre dans une fonction que tu appelerais pour chaque objet.
    j'y ai pensé mais j'ai remarqué que tous les objets n'ont pas les mêmes caractéristiques. Exemple : les combo n'ont pas de .height, les labels (s'ils ont l'autosize à true) n'ont pas besoin de .height et .width.

    Je sais qu'il y a moyen de jouer avec "objet." mais je n'ai pas encore approfondi le sujet.

    Pour ma petite application, ca n'est pas encore trop lourd.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 36
    Dernier message: 16/01/2015, 08h09
  2. Crystal Reports : problème lors du changement de Serveur
    Par Abac_Angelique dans le forum C#
    Réponses: 2
    Dernier message: 12/10/2007, 09h26
  3. Problème lors du changement d'un écran
    Par remyv87 dans le forum Mandriva / Mageia
    Réponses: 3
    Dernier message: 03/07/2007, 16h47
  4. Réponses: 10
    Dernier message: 28/01/2007, 17h35
  5. [HTML] Problème lors du changement des chemins
    Par ramzi24 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 14/12/2006, 19h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo