Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: k_arlytos en Agosto 13, 2009, 02:44:06 pm
-
hola que tal una sugerencia en q momento termina una dll cuando le hago
dim x as new dll
set x=nothing ----------> que sucede aqui
o cuando si esque la variable esta declarado en un pocedimiento de un boton que digamos
sub btnopera_click()
dim x as new dll
procesos que hago con la dll
.
.
.
.
.
end sub ' en este punto llama a el evento terminate de la dll
o que sucede en este punto
-
Hola, si la declaras como as new en un formulario en la parte superior y no la descargas con Set C = Nothing en algun momento, esta se termina cuando se descarga el formulario
si la declaras dentro de un evento esta se termina al salir del evento
Private Sub Command1_Click()
Set C = New Class1
Debug.Print C.Suma(2, 3)
End Sub
pero si la declaras en la parte superior del formulario
y la inicializas en un evento esta no se descarga al salir del evento a menos que lo agas tu mismo (Set C = Nothing), lo hara al descargar el formulario
para que hagas tus propios experimentos y saques tus concluciones hace los siguiente
crea un modulo Clase y pone el siguiente codigo
Option Explicit
Private Sub Class_Initialize()
Debug.Print "estoy Inicializada"
End Sub
Private Sub Class_Terminate()
Debug.Print "estoy descargada"
End Sub
Public Function Suma(Byval valor1 As Long,Byval valor2 As Long) As Long
Suma = valor1 + valor2
End Function
vas a ver que si vos declaras
Dim C As New Class1
el sub Initialize de la clase no se dispara asta que no llames una funcion de la clase
creo que aver leido alguna ves que no es aconsejable declararlo asi, no tengo ni idea porque
lo mejor es declararla y luego inicializarla
Option Explicit
Dim C As New Class1
Private Sub Form_Load()
Set C = New Class1
End Sub
tambien creo que es aconsejable descargarla (Set C = Nothing) por las dudas
Saludos
-
"Inicializarla" no es garantia de que el sub Initialize se ejecute, si la declaras as new no va a pasar nada hasta que se utilize la clase.