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.NET Discussion :

Redéfinition des méthode vb6 TwipsToPixelsY et twipsToPixelsX


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut Redéfinition des méthode vb6 TwipsToPixelsY et twipsToPixelsX
    Bonjour,

    je me suis renseigné afin de pouvoir redéfinir ces deux fonctions dans mon programme vb.net.

    quand je fait appel à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Width = Compatibility.VB6.TwipsToPixelsX(Compatibility.VB6.PixelsToTwipsX(FrmName.Width) + 340)
    je n'ai pas la même valeur que lorsque je fait appel à ma fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TwipsToPixelsX(TwipsToPixels(frmName.width)+340)
    . La même chose se produitavec TwipsToPixelsY.

    dans le premier cas j'ai la valeur 363 et dans le cas avec ma fonction, j'ai la valeur 24

    voici mes deux fonctions :
    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
     
    Private Function TwipsToPixelsY(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpiy As Short = graph.DpiY
     
            graph.Dispose()
     
            Return (twips * dpiy) / twips_per_inch
        End Function
     
        Private Function TwipsToPixelsX(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpix As Short = graph.DpiX
     
            graph.Dispose()
     
            Return (twips * dpix) / twips_per_inch
        End Function
    par contre si je fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim i as integer = TwipsToPixelsX(120)
    j'ai la même valeur qu'en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim j as integer = Compatibility.VB6.TwipsToPixelsX(120)
    c'est à dire 8.

    Du coup je ne voit pas vraiment d'où peut provenir le problème ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2013
    Messages
    235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juillet 2013
    Messages : 235
    Par défaut
    Bonjour,
    En VB.NET de multiples systèmes de coordonnées ne sont pas pris en charge, seuls les pixels. Les Twips sont obsolètes. Par conséquent, tu dois simplement réécrire ce code pour travailler avec des pixels.

  3. #3
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    Citation Envoyé par ACIVE_CS Voir le message
    Bonjour,
    En VB.NET de multiples systèmes de coordonnées ne sont pas pris en charge, seuls les pixels. Les Twips sont obsolètes. Par conséquent, tu dois simplement réécrire ce code pour travailler avec des pixels.
    Soit c'est moi qui ne te comprend pas, soit c'est toi qui ne ma pas compris

    J'ai bien réécrit le code que voici:

    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
    Private Function TwipsToPixelsY(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpiy As Short = graph.DpiY
     
            graph.Dispose()
     
            Return (twips * dpiy) / twips_per_inch
        End Function
     
        Private Function TwipsToPixelsX(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpix As Short = graph.DpiX
     
            graph.Dispose()
     
            Return (twips * dpix) / twips_per_inch
        End Function
    en partant du postulat que frm.Height = 46

    lorsque je fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MsgBox(TwipsToPixelsY(TwipsToPixelsY(FrmName.Height) + 1500) & "             " & Compatibility.VB6.TwipsToPixelsY(Compatibility.VB6.PixelsToTwipsY(FrmName.Height) + 1500))
    j'ai ceci comme resultat : 100.204 146

    si je fait ne fut ce que cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    tmp = TwipsToPixelsY(FrmName.Height) + 1500
                tmp2 = Compatibility.VB6.PixelsToTwipsY(FrmName.Height) + 1500
    msgbox(tmp & "        " & tmp2)
    j'ai les valeur = 1503 2190

    par contre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    tmp = TwipsToPixelsY(120)
                tmp2 = Compatibility.VB6.PixelsToTwipsY(120)
    tmp vaut 8 et tmp2 vaut 8

    j'en perd mon latin, non pardon mon vb

  4. #4
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    336
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2010
    Messages : 336
    Par défaut
    c'est bon j'ai trouvé mon erreur en fait la fonction vb6 fait PixelToTwips et moi je ai redéfini du TwipsToPixel.
    Donc il suffit d'inverser deux variables dans mes fonctions.

    Précédemment :
    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
    Private Function TwipsToPixelsY(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpiy As Short = graph.DpiY
     
            graph.Dispose()
     
            Return (twips * dpiy) / twips_per_inch
        End Function
     
        Private Function TwipsToPixelsX(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpix As Short = graph.DpiX
     
            graph.Dispose()
     
            Return (twips * dpix) / twips_per_inch
        End Function
    actuellement :

    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
    Private Function PixelsToTwipsY(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpiy As Short = graph.DpiY
     
            graph.Dispose()
     
            Return (twips * twips_per_inch) / dpiy
        End Function
     
        Private Function PixelsToTwipsX(ByVal twips As Double) As Double
            Dim twips_per_inch As Double = 1440.0F
            Dim graph As Graphics = Me.CreateGraphics
            Dim dpix As Short = graph.DpiX
     
            graph.Dispose()
     
            Return (twips * twips_per_inch) / dpix
        End Function
    qui maintenant est devenu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     Private Function PixelsToTwips(ByVal twips As Double) As Double
            Return (twips * 1440.0F) / 96
        End Function
    Maintenant je comprend mon erreur

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 08/12/2008, 18h20
  2. [Info] génération des méthodes parentes
    Par Popeye75 dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 08/12/2005, 17h24
  3. JAVA - Passer des Objects à des méthodes
    Par canou94 dans le forum CORBA
    Réponses: 2
    Dernier message: 15/11/2005, 22h39
  4. Editeur de texte - liste des méthodes
    Par Carlito_superheros dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 30/03/2005, 12h52
  5. [Info]descriptif des méthode ?
    Par java_math dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 01/06/2004, 08h36

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