spy166
Messages postés207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 mars 2006
-
21 mai 2004 à 23:40
cs_chiffre
Messages postés40Date d'inscriptionvendredi 7 mars 2003StatutMembreDerniè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.
cs_chiffre
Messages postés40Date d'inscriptionvendredi 7 mars 2003StatutMembreDerniè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és586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 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és12Date d'inscriptionlundi 14 avril 2003StatutMembreDerniè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és207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 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és586Date d'inscriptionlundi 7 janvier 2002StatutMembreDernière intervention10 février 20101 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és134Date d'inscriptionvendredi 19 mars 2004StatutMembreDernière intervention 6 juin 20071 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és12Date d'inscriptionlundi 14 avril 2003StatutMembreDerniè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és62Date d'inscriptiondimanche 16 septembre 2001StatutMembreDernière intervention21 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és4Date d'inscriptionlundi 8 septembre 2003StatutMembreDernière intervention23 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és9Date d'inscriptionlundi 29 décembre 2003StatutMembreDernière intervention28 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és207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 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és133Date d'inscriptionjeudi 26 octobre 2000StatutMembreDernière intervention20 juillet 20041 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és1356Date d'inscriptionsamedi 8 décembre 2001StatutMembreDernière intervention23 octobre 20068 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és1411Date d'inscriptionmercredi 6 août 2003StatutMembreDernière intervention 3 mars 20191 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és200Date d'inscriptionlundi 10 mars 2003StatutMembreDerniè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és207Date d'inscriptionjeudi 21 novembre 2002StatutMembreDernière intervention29 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.
@+
19 janv. 2007 à 20:35
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
25 mai 2004 à 17:38
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
25 mai 2004 à 08:12
24 mai 2004 à 20:56
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".
24 mai 2004 à 19:28
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 ?
24 mai 2004 à 18:49
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...
24 mai 2004 à 08:01
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?
23 mai 2004 à 16:42
23 mai 2004 à 11:43
23 mai 2004 à 09:52
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.
23 mai 2004 à 03:44
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.
23 mai 2004 à 02:19
22 mai 2004 à 21:12
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
@+
22 mai 2004 à 17:49
Mais si la traduction est faite par .net, elle doit surement etre tres bonne ?!?!
++
22 mai 2004 à 06:51
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.
21 mai 2004 à 23:40
J'ai fait pareil que toi pour trouver cette astuce (vb6-->vb.net), ce moyen marche plutôt bien en général.
@+