RETROUVER LES FONCTIONNALITÉS DE VB6

spy166 Messages postés 207 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 29 mars 2006 - 21 mai 2004 à 23:40
cs_chiffre Messages postés 40 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 9 février 2013 - 19 janv. 2007 à 20:35
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23040-retrouver-les-fonctionnalites-de-vb6

cs_chiffre Messages postés 40 Date d'inscription vendredi 7 mars 2003 Statut Membre Dernière intervention 9 février 2013
19 janv. 2007 à 20:35
Bonjour...

J'essayais de comprendre vb6 fr.
Un de mes amis pas conseiller de transférer en vb.net 2005 fr.
Je suis en train de migrer vers vb.net.

Je crois que c'est mieux mais ca prend beaucoup de patience car pour moi le pire c'est d'attendre toujours à minute que tu changes de quoi et enregistre ca prend un éternité 2 minute et plus souvent

Si tu fait 50 changement ca veut dire pratiquement d'attende en tout.Tu vient de perdre 1 heure et plus.

J'ai hate de ne plus avoir d'erreur de conversion de vb6 en vb.net

Pourtant j'ai 512 Mod de RAM

En passant j'avais faite une gestion d'erreur complet pour vb6
qui fonctionnait très bien, et ca ne fonctionne pas ou en partie,
en vb.net

C'est qui me froisse le plus c'est que je veut avoir le numéro de ligne qui fait l'erreur et je n'ai pas trouver le moyen encore.

Merci

Jean-Marc
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
25 mai 2004 à 17:38
à nouveau d'accord avec toi marcA :)
la poo a ses avantages et ses 'inconvénients' (notemment il faut savoir l'utiliser correctement pour profiter de ses avantages :) ).
Pour la migration VB -> VB.NET, si c'est une migration 1:1 (pas de modification des fonctionnalités de l'application) c'est inutile !! Quels sont les avantages ? Un responsable Microsoft te dira même que c'est 'stupide' (et je ne l'invente pas, je suis fréquemment en réunion avec eux...).
Quel est l'avantage de passer d'une '2CV' à une 'Porsche' si on continue à conduire mal et lentement ?

spy166: on fait comme on veut ok, mais appliquer un modèle MVC t'évite pas mal d'ennuis (à moins que ton application n'évolue plus.. ce qui n'est pas souvent le cas).

yop
cs_marcA Messages postés 12 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 3 août 2010
25 mai 2004 à 08:12
Je crois aussi que c'est dommage de passer en VB.Net et de ne pas profiter de ses nouvelles possibilités. Je travailles toujours en VB6, mais j'essaye déjà de faire de l'orienté objet (seules des méthodes changent des propriétés...). Je ne vois pas du tout l'avantage de passer en VB.Net si ce n'est pour profiter des avantages de l'OO. D'un autre coté, il faut mieux analyser ce que l'on veut faire avant de le faire en orienté objet, donc l'avantage n'est pas toujours évident. Par contre, une bonne analyse permet de gérer des modifications dans des autres fenêtres que celle que l'utilisateur change automatiquement...
spy166 Messages postés 207 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 29 mars 2006
24 mai 2004 à 20:56
Ben on fait bien comme on veut.
Personnellement je n'ai jamais utilisé cette méthode car je n'en ai pas l'utilité, mais je pense que ça peut être assez utile tout de même.
Par exemple pour une feuille d'options ou de paramètres avec un bouton "Appliquer".
cs_Yopyop Messages postés 586 Date d'inscription lundi 7 janvier 2002 Statut Membre Dernière intervention 10 février 2010 1
24 mai 2004 à 19:28
marcA

D'accord avec toi... en poo il y a les objets business.
Donc dans ce cas:
la form2 change la valeur de l'objet
lorsque la form1 reçoit le focus, elle peut se rafraîchir avec les nouvelles valueurs de l'objet (apr example).

On peut également utiliser des delegates

Mais apparemment, les personnes qui passent de VB à VB.NET ne font pas la poo...malheureusement :(

Qu'en penses-tu ?
alicvb Messages postés 134 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 juin 2007 1
24 mai 2004 à 18:49
A mon avis, tu ne prends pas les choses dans le bon sens :
Pour afficher la form mdi de saisie des informations, tu dois nécessairement l'instancier (la déclarer avec new) non ?
dès lors, tu peux stocker en variables publiques ces forms :
dans un module : public f1 as form1
au moment où tu veux afficher form1 : f1=new form1


et tu peux basculer de l'une à l'autre sans problèmes, utiliser les valeurs de l'une pour écrire sur l'autre et vice-versa

du coup tu peux directement écrire :
f1.NomVille.text = Me.rechercheVille.text
sans réinstancier form1, car f1 est une varibale publique, et donc accéssible de partout...

essaie et tiens moi au courant...
cs_marcA Messages postés 12 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 3 août 2010
24 mai 2004 à 08:01
Bonjour,

Je n'aimes pas beaucoup une méthode pareille : En programmation orientée objet, on ne peut pas accéder aux propriétés (contrôles) d'un autre objet. Juste des méthodes. C'est un peu comme si on utilisait toujours des goto et gosub en VB 6

Pour accéder à un texte d'une autre forme, je ferais une méthode qui renvoit le texte à la rigueur, mais pas d'accès direct. Par contre, on peut se demander pourquoi accéder à un texte d'une autre form. Est-ce que le texte de l'autre forme ne devrait pas envoyer un message avec le changement qui lui est apporté à toutes les autres fenêtre MDI, et les autres fenêtres se servent du nouveau texte si elles en ont besoin?
ABL-Online Messages postés 62 Date d'inscription dimanche 16 septembre 2001 Statut Membre Dernière intervention 21 septembre 2006
23 mai 2004 à 16:42
Aucune des propostions faire ici notament par ledev et MrDogbert ne fonctionne donc j'en reste a ma procédure qui me semble la meilleur solution pour l'instant.
cs_tno Messages postés 4 Date d'inscription lundi 8 septembre 2003 Statut Membre Dernière intervention 23 mai 2004
23 mai 2004 à 11:43
Il faudrait générer un événement (contenant toutes les infos) lors du lostfocus de ta form1 , puis le récupérer dans ta form2...
ledev Messages postés 9 Date d'inscription lundi 29 décembre 2003 Statut Membre Dernière intervention 28 juin 2004
23 mai 2004 à 09:52
Juste comme ça, t'aurai crée un module et mis:
public form1 as new form1
et tu y accedais comme tu voulais. Ton probléme c'est que désormait les feuilles sont de simple classe, et que la variable contenant l'objet Form1 n'a pas sa porter partout. Avec un module comme ci-dessus elle l'a.

Mais bon, la logique de programmation en vb.net est complétement différente de celle de vb6(d'oû les difficulter à migrer des applis, et les routines et autre classe de compatibilité du .Net), mieux vos donc "pensé .net" et faire un programme dans sa logique à lui.
spy166 Messages postés 207 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 29 mars 2006
23 mai 2004 à 03:44
labout, ça marche juste si on ajoute ça au code :
Private Shared m_vb6FormDefInstance As Form1
Private Shared m_InitializingDefInstance As Boolean
Public Shared Property DefInstance() As Form1
Get
If m_vb6FormDefInstance Is Nothing OrElse m_vb6FormDefInstance.IsDisposed Then
m_InitializingDefInstance = True
m_vb6FormDefInstance = New Form1
m_InitializingDefInstance = False
End If
DefInstance = m_vb6FormDefInstance
End Get
Set(ByVal Value As Form1)
m_vb6FormDefInstance = Value
End Set
End Property

Donc, pas besoin des références.
MrDogbert Messages postés 133 Date d'inscription jeudi 26 octobre 2000 Statut Membre Dernière intervention 20 juillet 2004 1
23 mai 2004 à 02:19
en même temps, tu rajoutais juste un getter ( public function getBidule as bidule) dans ta class et c'était réglé ...
cs_labout Messages postés 1356 Date d'inscription samedi 8 décembre 2001 Statut Membre Dernière intervention 23 octobre 2006 8
22 mai 2004 à 21:12
Je ne note pas la source.

La traduction marche en effet mais les m_vb6FormDefInstance
sont bien lourd et l'exécution lent et il faut absolument les abandonner (voir les références ajoutées).
Il ne faut absolument pas écrire en VB opuis traduire en NET ce n'est pas la meilleure manière d'aborder VB.NET.
Pour débuter je conseille de télécharger les 101 exemples de Microsoft et de le étudier.
http://msdn.microsoft.com/vbasic/downloads/samples/default.aspx

Personnellement j'ai récrit entièrement mes appli VB 6 en pur VB.NET.
Il ne s'agit que d'un conseil d'un spécialiste de VB6 passé en VB.NET depuis 7 mois et qui ne le regrette pas du tout. VB.NET est FABULEUX
@+
bouv Messages postés 1411 Date d'inscription mercredi 6 août 2003 Statut Membre Dernière intervention 3 mars 2019 1
22 mai 2004 à 17:49
d'accord avec bubble44.
Mais si la traduction est faite par .net, elle doit surement etre tres bonne ?!?!
++
bubble44 Messages postés 200 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 3 août 2004
22 mai 2004 à 06:51
Je vais bientot passer en vb.net, et ca me semble etonnant de lire des "En .net impossible de faire ça en mode de feuille MDI :'".

Y a pas des specialistes ici en vb.net qui pourraient expliquer en qqs mots, une bonne methode (si on decide de programmer en vb.net on fait un point d'honneur a coder dans les regles), car ca me semble un peu "triste" d'utiliser vb.net et de coder ca a la vb6.
spy166 Messages postés 207 Date d'inscription jeudi 21 novembre 2002 Statut Membre Dernière intervention 29 mars 2006
21 mai 2004 à 23:40
Bonne idée de mettre ça ici, je suis sur que ça va aider beaucoup de monde.
J'ai fait pareil que toi pour trouver cette astuce (vb6-->vb.net), ce moyen marche plutôt bien en général.
@+
Rejoignez-nous