A l'aide svp ! Incompatibilité VB6 -> .NET

dudu90 Messages postés 3 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 5 avril 2005 - 4 avril 2005 à 15:37
dudu90 Messages postés 3 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 5 avril 2005 - 5 avril 2005 à 15:55
Bonjour les gens !

Je dois porter une applie de VB6 en .NET, j'ai fais ça directement dans .NET et il m'a traduit le machin comme il se doit, mais le problème est que certains morceaux de code ne sont plus valides sous .NET
Le délire dans l'histoire c'est que comme ce n'est pas moi qui ai développé l'applie en VB6 et qu'elle n'est absolument pas commentée et bien ce n'est pas facile de comprendre ce qui se passe ! (Surtout que je ne connais pas le .NET, et mes notions de VB6 commencent à être loin ... lol).
Alors les erreurs sont simples, ce sont les commentaires, bon c'est toujours les 2 mêmes c'est ça qui est bien lol :)
Il ne connait donc pas MyWidget.Index, ni la fonction Unload(), est ce que quelqu'un aurait une idée pour m'aider à résoudre mon problème ?

Merci d'avance !

Voila le code source :
Sous VB6 j'ai ça :

Private Sub Form_Unload(Cancel As Integer)
Dim MyWidget As Control

For Each MyWidget In LabelMin
If MyWidget.Index > 0 Then Unload MyWidget
Next 'MyWidget In LabelMin
For Each MyWidget In LabelMax
If MyWidget.Index > 0 Then Unload MyWidget
Next 'MyWidget In LabelMin
For Each MyWidget In TextMin
If MyWidget.Index > 0 Then Unload MyWidget
Next 'MyWidget In LabelMin
For Each MyWidget In TextMax
If MyWidget.Index > 0 Then Unload MyWidget
Next 'MyWidget In LabelMin
End Sub

et après traduction sous .NET j'obtiens :

'UPGRADE_WARNING: événement FormFiltre.Unload de Form a un nouveau comportement. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2065"'
Private
Sub FormFiltre_Closed(
ByVal eventSender
As System.Object,
ByVal eventArgs
As System.EventArgs)
Handles
MyBase.Closed

Dim MyWidget
As System.Windows.Forms.Control





For
Each MyWidget
In LabelMin



'UPGRADE_WARNING: Impossible de résoudre la propriété par défaut de l'objet MyWidget.Index. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"'



'UPGRADE_ISSUE: MyWidget Unload n'a pas été mis à niveau. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2029"'



If MyWidget.Text > 0
Then Unload(MyWidget)



Next MyWidget
'MyWidget In LabelMin



For
Each MyWidget
In LabelMax



'UPGRADE_WARNING: Impossible de résoudre la propriété par défaut de l'objet MyWidget.Index. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"'



'UPGRADE_ISSUE: MyWidget Unload n'a pas été mis à niveau. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2029"'



If MyWidget.Text > 0
Then Unload(MyWidget)



Next MyWidget
'MyWidget In LabelMin



For
Each MyWidget
In TextMin



'UPGRADE_WARNING: Impossible de résoudre la propriété par défaut de l'objet MyWidget.Index. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"'



'UPGRADE_ISSUE: MyWidget Unload n'a pas été mis à niveau. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2029"'



If MyWidget.Text > 0
Then Unload(MyWidget)



Next MyWidget
'MyWidget In LabelMin



For
Each MyWidget
In TextMax



'UPGRADE_WARNING: Impossible de résoudre la propriété par défaut de l'objet MyWidget.Index. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup1037"'



'UPGRADE_ISSUE: MyWidget Unload n'a pas été mis à niveau. Cliquez ici --> 'ms-help://MS.VSCC/commoner/redir/redirect.htm?keyword="vbup2029"'



If MyWidget.Text > 0
Then Unload(MyWidget)



Next MyWidget
'MyWidget In LabelMin



End
Sub


End
Class

3 réponses

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 7
5 avril 2005 à 09:12
Salut

d'après le code c'est un déchargement de contrôle, normalement tu n'en as pas besoin car le vb.net gère tout seul la mémoire.

Est-ce que tu as essayé de mettre ces lignes en commentaires et de faire marcher le programme ?

Sache que le transformation de vb6 à vb.net se fait mais microsoft certifie à 100% que ton projet ne marchera pas. Ils sont pas fous.

@+
LIM
0
dudu90 Messages postés 3 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 5 avril 2005
5 avril 2005 à 15:25
Slt,

Merci pour ta réponse.

Je vais essayer de commenter cette partie de code, mais il me reste encore d'autres erreurs alors je ne peux pas tester tout de suite si ça marche :(

Sinon pour Crosoft, ça ne m'étonne pas, et en même temps ils ont raison; ils ne peuvent pas assurer que la conversion marche à tous les coups vu le nombre de cas à traiter !

Bon je tente de rectifier les autres erreurs et je viendrai dire si ta solution est la bonne ^^

Merci encore
++
0
dudu90 Messages postés 3 Date d'inscription lundi 4 avril 2005 Statut Membre Dernière intervention 5 avril 2005
5 avril 2005 à 15:55
Bon je vais abuser en posant encore une petite question.
Dans le code en fin de post, j'ai une erreur sur :

For
Each LocClsConnectADO
In MyClsConnectGDM

Ca me dit : "L'expression est du type 'GDM.ClsConnectADO', qui n'est pas un type de collection"
Est-ce que quelqu'un pourrait m'éclairer sur cette erreur svp ?
(Désolé si mes questions sont betes, mais le VB n'est vraiment pas ma spécialité lol)

Merci d'avance
++

Mon code en .NET (l'erreur est à la 7° ligne) :



Public
Function Disconnect()
As
Integer



Dim LocClsConnectADO
As ClsConnectADO





If
Not (MyClsConnectGDM
Is
Nothing)
Then


MyClsConnectGDM.Disconnect()



End
If
'If Not (MyClsConnectGDM Is Nothing)





If
Not (MyClsConnectSL
Is
Nothing)
Then



For
Each LocClsConnectADO
In MyClsConnectGDM


LocClsConnectADO.Disconnect()



Next LocClsConnectADO
'LocClsConnectADO In MyClsConnectGDM



End
If
'If Not (MyClsConnectSL Is Nothing)



End
Function
0
Rejoignez-nous