RE:Limpiar variables y cerrar proyecto
Patricia: Si al cerrar los formularios, las variables quedan en memoria, es por que están declaradas como públicas en un módulo standar. Si sólo tienen visiblilidad dentro del formulario, colocalas en él, sino dejalas donde están.
Lo que puede estar pasando son varias cosas:
1. Tenés objetos que estableciste con la instrucción SET. Si los objetos son públicos, al descargar descargar el último formulario los establecés a Nothing. Por ejemplo, si declartaste Set A = X o Set S = New X, al descargar el último formulario colocás Set A = Nothing para liberar memoria. Si en cambio son visibles dentro del formulario, los establecés a Nothing al descargarlo. En el caso que los hayas establecido en un procedimiento, al finalizar el procedimiento o cuando ya no los necesités. Es una vieja creencia que Basic limpia todo,m no es verdad. Basic limpia lo que hace Basic, lo demás es asunto tuyo.
2. Si colocás imágenes y luego las reemplazás por otras, limpiá los objetos picture antes de colocar la nueva imagen (Se sigue aplicando lo que dije en el punto 1). Ejemplo
Set Picture1.picture=Nothing
Set Picture1.picture=LoadPicture(C:\...)
3. Lo mismo va para los objetos creados con CreateObject, limpialos cuando no los necesités o antes de acabar la vida del objeto.
4. Lasbases de datos y recodsets abiertos deben cerrarse tan pronto yano los necesites. Me refiero a los que se crean con código, si utilizan un control, éste se encarga de cerrarlos.
5. No utilicés la instrucción END. END deja todo en memoria, permite la finalización de la aplicación, pero no libera el espacio de trabajo de la misma, dejando todo tirado por ahí. END desconecta la aplicación y la cierra parcialmente.
6. Si utilizás controles que no vienen con VB, por ejemplo los que se bajan de internet, convendría testearlos. A veces no liberan toda la memoria y ocasionan problemas. Sería conveniente colocarlos aislados, uno a uno, en un formulario y ver cuanta memoria hay tenemos disponnible antes de correr el programa por primeravez y luego de abrirlo y cerarlo varias veces. Si cada vez se pierde un poco de memoria, entonces el culpable es el control.
7. Si estás utilizando el API, leé la documentación de la función y fijate si no es necesario eliminar memoria en alguna forma.
Espero que te sirva
Saludos Ruri