gillesrun
Messages postés49Date d'inscriptionvendredi 11 août 2006StatutMembreDernière intervention26 juin 2007
-
20 juin 2007 à 06:08
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 2014
-
20 juin 2007 à 21:58
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;
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 20 juin 2007 à 08:34
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
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 20 juin 2007 à 21:58
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 ")