le probl=E8me est le suivant : comment d=E9truire une instance=20
de classe ?
j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton=20
Command1 et un module de class (Class1).
ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton :
Private Sub Command1_Click()
Dim c As New Class1
If Not c Is Nothing Then Set c =3D Nothing
If Not c Is Nothing Then
MsgBox "toujours vivant"
End If
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Djel
Salut, Essaye ceçi (non testé) :
Private Sub Command1_Click() Dim c As Class1 Set c = New Class1
If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If
End Sub
"Rodolphe" a écrit dans le message de news: 37a601c40134$2812e2b0$ le problème est le suivant : comment détruire une instance de classe ? j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton Command1 et un module de class (Class1). ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton : Private Sub Command1_Click() Dim c As New Class1
If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If End Sub
L'aplication affiche "toujours vivant"
Salut,
Essaye ceçi (non testé) :
Private Sub Command1_Click()
Dim c As Class1
Set c = New Class1
If Not c Is Nothing Then Set c = Nothing
If Not c Is Nothing Then
MsgBox "toujours vivant"
End If
End Sub
"Rodolphe" <dev.abyss@wanadoo.fr> a écrit dans le message de news:
37a601c40134$2812e2b0$a601280a@phx.gbl...
le problème est le suivant : comment détruire une instance
de classe ?
j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton
Command1 et un module de class (Class1).
ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton :
Private Sub Command1_Click()
Dim c As New Class1
If Not c Is Nothing Then Set c = Nothing
If Not c Is Nothing Then
MsgBox "toujours vivant"
End If
End Sub
Private Sub Command1_Click() Dim c As Class1 Set c = New Class1
If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If
End Sub
"Rodolphe" a écrit dans le message de news: 37a601c40134$2812e2b0$ le problème est le suivant : comment détruire une instance de classe ? j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton Command1 et un module de class (Class1). ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton : Private Sub Command1_Click() Dim c As New Class1
If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If End Sub
L'aplication affiche "toujours vivant"
ng
Salut, Tu as ce résultat car tu utilises une technique peu recommandée pour créer ta classe !
Essaye plutot ceci :
Dim c As Class1 Set c = New Class1 If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Rodolphe a écrit :
le problème est le suivant : comment détruire une instance de classe ? j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton Command1 et un module de class (Class1). ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton : Private Sub Command1_Click() Dim c As New Class1
If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If End Sub
L'aplication affiche "toujours vivant"
Salut,
Tu as ce résultat car tu utilises une technique peu recommandée pour créer
ta classe !
Essaye plutot ceci :
Dim c As Class1
Set c = New Class1
If Not c Is Nothing Then Set c = Nothing
If Not c Is Nothing Then
MsgBox "toujours vivant"
End If
--
Nicolas G.
FAQ VB : http://faq.vb.free.fr
API Guide : http://www.allapi.net
Google Groups : http://groups.google.fr/
MZ-Tools : http://www.mztools.com/
Rodolphe <dev.abyss@wanadoo.fr> a écrit :
le problème est le suivant : comment détruire une instance
de classe ?
j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton
Command1 et un module de class (Class1).
ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton :
Private Sub Command1_Click()
Dim c As New Class1
If Not c Is Nothing Then Set c = Nothing
If Not c Is Nothing Then
MsgBox "toujours vivant"
End If
End Sub
Salut, Tu as ce résultat car tu utilises une technique peu recommandée pour créer ta classe !
Essaye plutot ceci :
Dim c As Class1 Set c = New Class1 If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If
-- Nicolas G. FAQ VB : http://faq.vb.free.fr API Guide : http://www.allapi.net Google Groups : http://groups.google.fr/ MZ-Tools : http://www.mztools.com/
Rodolphe a écrit :
le problème est le suivant : comment détruire une instance de classe ? j'ai ouvert un projet : 1 formulaire Form1 avec 1 bouton Command1 et un module de class (Class1). ce module de class est vide (uniquement "option explicit")
voici le code de mon bouton : Private Sub Command1_Click() Dim c As New Class1
If Not c Is Nothing Then Set c = Nothing If Not c Is Nothing Then MsgBox "toujours vivant" End If End Sub
L'aplication affiche "toujours vivant"
Zoury
Salut Rodolphe! :O)
Djel et Nicolas t'ont donnés la bonne syntaxe à utiliser.. si tu veux un peu plus d'explication, lit cet extrait d'un de mes anciens messages :
"Il existe plusieurs façon de créer un objet en VB. La plus commune est celle-ci:
Dim oCol As Collection Set oCol = New Collection
La technique suivante existe aussi :
Dim oCol As New Collection
Cette deux techniques sont très différentes et je conseilles fortement l'utilisation de la première!
Dans le premier cas, VB déclare un pointeur pour notre objet (Dim oCol As Collection) et réserve la mémoire utile à notre objet par la suite (Set oCol = New Collection). Tu est le seul à décidé quand l'objet sera initialisé et détruit.
Dans le deuxième cas, VB déclare un pointeur pour ton objet, et attend à la première utilisation de l'objet pour réservé lui-même l'espace dont l'objet à besoin. Ça semble bien, mais ça peut jouer des tours. Tu ne pourras jamais vérifier si l'objet est intialisé, car il l'est virtuellement tout le temps...
Ex:
Private Sub Form_Load()
Dim oCol As Collection Dim oCol2 As New Collection
'Objet non initialisé Debug.Print "oCol Is Nothing: " & (oCol Is Nothing)
'Objet initialisé Set oCol = New Collection Debug.Print "oCol Is Nothing: " & (oCol Is Nothing)
'Objet non initialisé, mais VB l'initialise tout seul... Debug.Print "oCol2 Is Nothing" & (oCol2 Is Nothing)
Set oCol = Nothing Set oCol2 = Nothing
End Sub
Donc non seulement la deuxième méthode est plus claire et prévient les bugs, elle nécessite également beaucoup moins de travaille "behind the scene" pour effectuer le traitement. Je te jures que les 2 secondes de plus que tu prends pour écrire la deuxième lignes en valent vraiment la peine.."
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut Rodolphe! :O)
Djel et Nicolas t'ont donnés la bonne syntaxe à utiliser.. si tu veux un peu
plus d'explication, lit cet extrait d'un de mes anciens messages :
"Il existe plusieurs façon de créer un objet en VB. La plus commune est
celle-ci:
Dim oCol As Collection
Set oCol = New Collection
La technique suivante existe aussi :
Dim oCol As New Collection
Cette deux techniques sont très différentes et je conseilles fortement
l'utilisation de la première!
Dans le premier cas, VB déclare un pointeur pour notre objet (Dim oCol
As Collection) et réserve la mémoire utile à notre objet par la suite (Set
oCol = New Collection). Tu est le seul à décidé quand l'objet sera
initialisé et détruit.
Dans le deuxième cas, VB déclare un pointeur pour ton objet, et attend à
la première utilisation de l'objet pour réservé lui-même l'espace dont
l'objet à besoin. Ça semble bien, mais ça peut jouer des tours. Tu ne
pourras jamais vérifier si l'objet est intialisé, car il l'est virtuellement
tout le temps...
Ex:
Private Sub Form_Load()
Dim oCol As Collection
Dim oCol2 As New Collection
'Objet non initialisé
Debug.Print "oCol Is Nothing: " & (oCol Is Nothing)
'Objet initialisé
Set oCol = New Collection
Debug.Print "oCol Is Nothing: " & (oCol Is Nothing)
'Objet non initialisé, mais VB l'initialise tout seul...
Debug.Print "oCol2 Is Nothing" & (oCol2 Is Nothing)
Set oCol = Nothing
Set oCol2 = Nothing
End Sub
Donc non seulement la deuxième méthode est plus claire et prévient les bugs,
elle nécessite également beaucoup moins de travaille "behind the scene" pour
effectuer le traitement. Je te jures que les 2 secondes de plus que tu
prends pour écrire la deuxième lignes en valent vraiment la peine.."
Djel et Nicolas t'ont donnés la bonne syntaxe à utiliser.. si tu veux un peu plus d'explication, lit cet extrait d'un de mes anciens messages :
"Il existe plusieurs façon de créer un objet en VB. La plus commune est celle-ci:
Dim oCol As Collection Set oCol = New Collection
La technique suivante existe aussi :
Dim oCol As New Collection
Cette deux techniques sont très différentes et je conseilles fortement l'utilisation de la première!
Dans le premier cas, VB déclare un pointeur pour notre objet (Dim oCol As Collection) et réserve la mémoire utile à notre objet par la suite (Set oCol = New Collection). Tu est le seul à décidé quand l'objet sera initialisé et détruit.
Dans le deuxième cas, VB déclare un pointeur pour ton objet, et attend à la première utilisation de l'objet pour réservé lui-même l'espace dont l'objet à besoin. Ça semble bien, mais ça peut jouer des tours. Tu ne pourras jamais vérifier si l'objet est intialisé, car il l'est virtuellement tout le temps...
Ex:
Private Sub Form_Load()
Dim oCol As Collection Dim oCol2 As New Collection
'Objet non initialisé Debug.Print "oCol Is Nothing: " & (oCol Is Nothing)
'Objet initialisé Set oCol = New Collection Debug.Print "oCol Is Nothing: " & (oCol Is Nothing)
'Objet non initialisé, mais VB l'initialise tout seul... Debug.Print "oCol2 Is Nothing" & (oCol2 Is Nothing)
Set oCol = Nothing Set oCol2 = Nothing
End Sub
Donc non seulement la deuxième méthode est plus claire et prévient les bugs, elle nécessite également beaucoup moins de travaille "behind the scene" pour effectuer le traitement. Je te jures que les 2 secondes de plus que tu prends pour écrire la deuxième lignes en valent vraiment la peine.."