Besoin de comprendre L'utilisation des objets avec Set et New

Résolu
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006 - 16 oct. 2005 à 20:59
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 - 16 oct. 2005 à 23:38
Bonjour,

J'ai créé des classes avec lesquelles je crée des objets. L'application que je suis en train de faire nécessite la référence au même objet à 2 reprises mais d'une manière différente et je m'explique:

1er cas
Horaire.Commande(i).Operation(j).IdOperation

2eme Cas
Horaire.Machine(x).Operation(y).IdOperation

Il pourrait etre vrai:
Horaire.Commande(i).Operation(j).IdOperation=Horaire.Machine(x).Operation(y).IdOperation

Alors si je fais
set Horaire.Commande(i).Operation(j)=New cOperation
Horaire.Commande(i).Operation(j)=Assigne Valeurs...

Et ensuite:
set Horaire.Machine(x).Operation(y)=Horaire.Commande(i).Operation(j)

Mon problème est que si je modifie une valeur d'operation en passant par l'objet machine, la valeur ne se modifie pas si je retourne voir par l'objet Commande !

Si j'utilise New je crée un nouvel objet en mémoire....
Mais si je n'utilise pas new, je croyais que cela ferais un peu comme utiliser un pointeur sur l'objet déja créé....

Qqun peut m'éclairer ?

Rien ne sert de courir, il faut partir à point.

&

5 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 oct. 2005 à 22:32
salut,

voici un exemple concret et fonctionnel VB6

en espérant qu'il t'aide à mieux comprendre....


Dim AfCrypt As New Cls_CrypDecryp
Dim ooo As Object
'
'
Private Sub Form_Load()
Set AfCrypt = New Cls_CrypDecryp
Set ooo = AfCrypt
ooo.Tag = "ouai"
End Sub
'
'
Private Sub Form_Unload(Cancel As Integer)
Set AfCrypt = Nothing
Set ooo = Nothing
End Sub
'
'
'
Private Sub Command1_Click()
MsgBox ooo.Tag
End Sub


<SMALL> Coloration syntaxique automatique [AFCK]</SMALL>


PCPT [AFCK]
3
Paladin2107 Messages postés 154 Date d'inscription samedi 25 octobre 2003 Statut Membre Dernière intervention 5 septembre 2008 1
16 oct. 2005 à 21:51
on peut instancier un objet de 2 facon

1 Créé en mémoire directement
Dim Machin as new OBJET

2 Crée lors du set
Dim Machin as OBJET
Set machin = ....

Ps : détruit l'objet
Set Machin = Nothing

Couscous
0
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
16 oct. 2005 à 22:13
Oui mais est-til possible d'utiliser le même objet avec 2 variables différentes


du genre


Dim Machin as new objet
dim Machin1 as Objet

Machin.text=""
set Machin1=Machin
Machin1.text devrait etre= à ""
Machin1.text=allo
Machin.text devrait etre = à "Allo"

Je me trompe ?

Rien ne sert de courir, il faut partir à point.

&
0
codea Messages postés 94 Date d'inscription dimanche 9 mai 2004 Statut Membre Dernière intervention 6 août 2006
16 oct. 2005 à 22:38
ca fais quoi si on déclare :
ooo as Cls_CrypDecryp
et après:
Set ooo = AfCrypt

Rien ne sert de courir, il faut partir à point.

&
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
16 oct. 2005 à 23:38
AfCrypt étant déjà déclaré et initialisé, ooo reçoit donc un format valide.
testé. çà fonctionne.
seulement, çà peut dépendre aussi du type de classe (peut-être), et celle en exemple est peu exigeante.....

PCPT [AFCK]
0
Rejoignez-nous