Conversion de vb6 vers VB 2005

Résolu
gillesrun Messages postés 49 Date d'inscription vendredi 11 août 2006 Statut Membre Dernière intervention 26 juin 2007 - 20 juin 2007 à 06:08
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 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;

merci d'avance

4 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
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

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 juin 2007 à 07:52
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
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
20 juin 2007 à 08:13
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
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
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 ")

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