Conversion de vb6 vers VB 2005 [Résolu]

Signaler
Messages postés
49
Date d'inscription
vendredi 11 août 2006
Statut
Membre
Dernière intervention
26 juin 2007
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
Bonjour,

je cherche a convertir cette chaine qui vient de vb6  vers VB2005 :

X = VB6.PixelsToTwipsX(Label2.Width) / VB6.TwipsPerPixelX + 2

Y = VB6.PixelsToTwipsY(Label2.Height) / VB6.TwipsPerPixelY + 2

Mais bien sur ,  je dois declarer ""VB6 " hors je ne sais pas comment faire.

Si quelqu'un pourrait m'aider , cela serait sympa;

merci d'avance

4 réponses

Messages postés
4822
Date d'inscription
lundi 11 novembre 2002
Statut
Membre
Dernière intervention
15 novembre 2016
13
Salut,

Comme le dit souvent Casy, il vaut mieux reprendre la partie de code VB6 et la transcrire en .net.....

Maitenant il me semble, qu'il y a une "référence" à cocher dans les menu, pour pourvoir faire en sorte que le code VB6 soit reconnu dans le projet .net

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,
Je ne comprends pas ce que tu souhaites faire... de quel type est la variable VB6 ?

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonjour,

Ne pas utiliser, tout bêtrement !

exemple :

 VB6.PixelsToTwipsY(Label2.Height) / VB6.TwipsPerPixelX - 1

devient : 



  Text1.Height - 1


Il faut par contre être tout simplement en scalermode Pixels
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
Coucou je suis là.
Comme le dit Explorer, je dit souvent qu'il vaut mieux recoder le code VB6, plutot que de se contenter de l'upgrade de l'assitant de conversion.

Alors pour les explications :

La référence à cocher (personellement, je préconise plutot de la décocher) est la référence du NameSpace "Microsoft.VisualBasic".

Mais cette  référence est ici surrement déjà cochée, parce que d'une , elle est cochée par défaut, et de 2, VB6. n'est pas une variable (pour répondre à Julien), mais, si mes souvenirs sont bon (et il faut le vérifier sur les premièers ligne du code me semble-t-il), est une redéfinition (racourcci) de Microsoft.VisualBasic.

Maintenant, analysons les ligne à traduire, la première par exemple :
VB6.PixelsToTwipsX(Label2.Width) , va convertir la largeur de Label2 (toujours exprimé en pixel sous .Net) en twips (unité de base par défaut sous VB6)

VB6.TwipsPerPixelX, indique le rapport entre la mesure Pixel et la mesure Twips pour l'écran en cours.
On va prendre le cas le plus courant ou ce rapport est égal à 15 (1 pixel = 15 twips)
La première ligne vas sécrire :

X = (Label2.Width * 15) / 15 + 2
, selon les règles mathématiques classique, on peut en déduire X = Label2.Width + 2

Et maintenant se pose le problème, et un bug potentiel généré par l'assistant de conversion :
Il faut donc analyser le code VB6 d'origine concernant ce "+ 2", car si à l'origine on avait aussi "+2", le code obtenu n'est plus cohérent, car à l'origine on rajoutait 2 twips alors que maintenant on rajouteras 2 pixels (soit 30 twips dans la pluparts des cas).

D'ou ma conclusion :

ATTENTION au code généré par l'assistant de convertion, même ce qui est correct niveau syntaxe, peut cacher des bugs énormes et très difficile à trouver, d'ou grosse perte de temps non facturable au client (sans arler des décalages de plannings non justifiables suaf avec une phrase du genre "Exusez-moi, mr le client, mais je suis une grosse truffe qui ne sais pas programmer ")

---- Sevyc64  (alias Casy) ---- <hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php