De VB6 a VB.net [Résolu]

Signaler
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013
-
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
-
Bonjour
je suis en train de porté un source VB6 en VB.net
j'ai cette source qui fonction sous VB6 mais pas VB.net

MyScale = Array(0, 0, 0)
sous VB.net
erreur de compil Error    1    'Array' is a type and cannot be used as an expression.    D:\Dev\La3D\VbNet\VRMLCtl\TestVRMLCtl\WindowsControlLibrary1\Ctl_VRML.vb    51    23    VRMLCtl

quelqu'un peu m'aider
merci

Jean louis

4 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,
Po simple .NET

essaie
If state Then
    MyScale.Value = New Single(2) {1, 1, 1}
Else
    MyScale.Value = New Single(2) {0, 0, 0}
End If

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
53
Salut,

J'imagine que MyScale est un tableau d'entier

Je crois que tu peux l'initialiser comme suit en NET:

Dim MyScale As Integer() = {0, 0, 0}

@+: Ju£i€n
Pensez: Réponse acceptée
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

enfin de compte j'ai MyScale qui est du type SFVec3f
MFVec3f viens d'une dll

MFVec3f
                add
                addVariant
                ....
                GetX
                GetY
                GetZ
                .....
                SetValue
                SetX

                SetY
                SetZ
             .....
               type
                value
                x
                y
                z

Public MyScale As SFVec3f
et j'avais sous VB6
Public Sub ShowPart(witchPart As String, state As Boolean)
 Set MyScale = UserControl.Cortona.Engine.Nodes(witchPart).Fields("scale")
 If state Then
  MyScale.value = Array(1, 1, 1)
 Else
  MyScale.value = Array(0, 0, 0)
 End If

End Sub
mais maintenant sous VB.net je n'arrive pas
erreur de compil Error    1    'Array' is a type and cannot be used as
an expression.   
D:\Dev\La3D\VbNet\VRMLCtl\TestVRMLCtl\WindowsControlLibrary1\Ctl_VRML.vb   
51    23    VRMLCtl

Cela d'aide un peu pour comprendre mon pb
merci

Jean louis
Messages postés
100
Date d'inscription
jeudi 3 mars 2005
Statut
Membre
Dernière intervention
24 mai 2013

C'est bon j'ai trouve
Public Sub ShowPart(ByVal witchPart As String, ByVal state As Boolean)
        Dim RetScale0 As Single() = {0, 0, 0}
        Dim RetScale1 As Single() = {1, 1, 1}
        MyScale = Cortona.Engine.Nodes(witchPart).Fields("scale")
        If state Then
            MyScale.value = RetScale1 ' en vb6 Array(1, 1, 1)
        Else
            MyScale.value = RetScale0

        End If

    End Sub
par contre il n'y a pas mieux ? on ne peut pas le mettre en direct ?
merci pour ton aide

Jean louis