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 :

VB6 -> VB.net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Dr_shaman
    Homme Profil pro
    Ingénieur Concepteur Développeur
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Concepteur Développeur

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut VB6 -> VB.net
    Bonjour, je suis charger de traduire ce code VB6 en VB.net
    mais je ne comprend pas pourquoi objTmpS qui est déclaré comme un objet, qu'on initialise avec un DrawingObjects qui contiens 8 objet (j'ai affiché DrawingObjects.count ) mais apprêt, objTmpS ne contien pas la fonction
    .Count de l'objet DrawingObjects. pourquoi en VB6 c'est possible et pas en VB.net?

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    Function createFileHypertexte(ByVal fileName As String)
        Dim Chem_app As String
    Set Objse = GetObject(, "SolidEdge.application")
     
    Dim objAttributeSets As AttributeSets
    Dim objAttributeSet As AttributeSet
    Dim j As Integer
     
     
    Dim objTmpS  As Object 'DrawingViews
    Dim objTmp As Object
     
    Chem_app = LireFormatDsFichierTexte("CHEMIN POUR LIRE PDF")
    If Right(Chem_app, 1) <> "\" Then Chem_app = Chem_app & "\"
    Chem_app = Chem_app & Left(fileName, Len(fileName) - 3) & "txt"
     
     
    Dim objSheet As Sheet
    Set objSheet = Objse.ActiveDocument.ActiveSheet
     
     
    Dim cpt As Integer
    Dim i As Integer
     
    Set objTmpS = objSheet.Groups
    For i = 1 To objTmpS.Count
        objTmpS(i).Ungroup
    Next i
     On Error Resume Next
     
    Set objTmpS = objSheet.DrawingObjects
    For i = 1 To objTmpS.Count
        cpt = cpt + 1
        Set objAttributeSets = objTmpS(i).AttributeSets
        Call TtHyperLinkFichierTexte(Chem_app, objAttributeSets)
     
    Next i
    End Function
     
     
    Private Function TtHyperLinkFichierTexte(ByVal NameFile As String, ByVal objTtAttributeSets As AttributeSets)
    Dim NumFic
    NumFic = FreeFile
     
        For Each objAttributeSet In objTtAttributeSets
            For j = 1 To objAttributeSet.Count
                If objAttributeSet.Item(j).Name = "UG_USER_HYPERLINK" Then
                    Open NameFile For Append As NumFic
                        Print #NumFic, objAttributeSet.Item(j).Value
                    Close NumFic
                End If
            Next
        Next
    End Function

  2. #2
    Membre expérimenté
    Homme Profil pro
    Freelance
    Inscrit en
    Février 2008
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 312
    Par défaut
    parce que vb .net ne contient pas les memes classes que VB6
    recherche sur msdn un équivalent .net de ces classes

  3. #3
    Membre confirmé Avatar de Dr_shaman
    Homme Profil pro
    Ingénieur Concepteur Développeur
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Concepteur Développeur

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut Mrci pour ta Réponce
    Merci pour ta Réponse, mais je c’est bien que vb .net ne contient pas les mêmes classes que VB6. Seulement DrawingObjects est une classe du FramWork de Solidedge et pas de Microsoft.

    Mais en gros mon problème c’est que… Pourquoi en VB6 je peux faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim Objse As SolidEdgeFramework.Application
    Dim objTmpS  As Object 
     
     
    Set Objse = GetObject(, "SolidEdge.application")
     
    Set objSheet = Objse.ActiveDocument.ActiveSheet
     
    Set objTmpS = objSheet.DrawingObjects
    For i = 1 To objTmpS.Count
    …
    next i
    et en VB.net

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Set objTmpS = objSheet.DrawingObjects  
    objTmpS.Count
    Sa ne marche pas ?

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 197
    Par défaut
    parce que tu l'as déclaré as object donc l'intellisense (et le compilateur avec option explicit on) ne proposent que ce qui existe sur ce que tu déclares

    il faut donc déclarer ta variable as ce qu'elle est réellement


    m'enfin déjà qu'en général les gens qui traduisent du vb6 en vb.net ca rend pas toujours très bien, avec dans l'histoire une dll externe ca va être encore moins terrible je pense


    si tu veux coute que coute garder as object et avoir quand meme .count il y a aussi moyen mais on en parlera en dernier recours car ca va rendre le tout encore plus illisible
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé Avatar de Dr_shaman
    Homme Profil pro
    Ingénieur Concepteur Développeur
    Inscrit en
    Février 2007
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur Concepteur Développeur

    Informations forums :
    Inscription : Février 2007
    Messages : 120
    Par défaut tu a raison sperot51
    J’ai déclaré toutes mes variables as ce qu'elles sont réellement. Sa marche toujours pas mais maintenant c'est un problème avec les objets Solidedge ce qui est beaucoup plus normal.


    Je ne connaissais pas intellisense.

    Merci.

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

Discussions similaires

  1. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  2. [Migration .NET] Pourquoi VB6 à VB.NET ?
    Par estelledany dans le forum Général Dotnet
    Réponses: 5
    Dernier message: 01/06/2007, 18h58
  3. [VB6] Equivalance VB.Net -> VB6
    Par Cirdan Telemnar dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 06/07/2006, 10h37
  4. différence entre vb6 et vb .net
    Par trefles dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 31/12/2005, 09h28
  5. [VB6] Utiliser dll .Net dans VB6
    Par sokette dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 31/03/2005, 14h34

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