Datos Persistentes en Aplicaciones VB6

 

Por: Harvey Triana, 12 de Mayo de 2008

 

Aun se puede hablar de ciertos tips en VB6. Muchas veces es idóneo disponer de variables de sesión persistentes de una aplicación VB6. Que conserven su valor aun después de cerrar la aplicación. Y que otro EXE pueda acceder a estos valores. Environ() es una alternativa asociada al sistema operativo, - pero quisiera algo más simple y exclusivo.

 

A continuación voy a exponer una técnica muy sencilla de hacer este tipo de variables.

 

En un modulo BAS, vamos a disponer una variable MyVar con tales características. Escribimos algo como:

 

 

Modulo BAS

' ----------------------------------

' Bas Modulue

' Sample of Shared Persistent Data

' Tip by Harvey Triana

' ----------------------------------

Option Explicit

 

Private Const APPNAME    As String = "AppName"

Private Const APPSECTION As String = "AppSection"

Private Const APPMYVAR   As String = "MyVar"

 

Private m_MyVar As String

 

Public Property Get MyVar() As String

    m_MyVar = GetSetting(APPNAME, APPSECTION, APPMYVAR, "")

    MyVar = m_MyVar

End Property

 

Public Property Let MyVar(ByVal value As String)

    If Not m_MyVar = value Then

       m_MyVar = value

       Call SaveSetting(APPNAME, APPSECTION, APPMYVAR, m_MyVar)

    End If

End Property

 

Por supuesto, los valores de las constantes, corren por su cuenta.  Ahora, desde cualquier punto de la aplicación podemos usar la variable MyVar. Por ejemplo:

 

Ejemplo. Un formulario.

 

Private Sub Form_Load()

    MsgBox "Myvar = " + MyVar

    MyVar = "Session end at: " + Time$

End Sub

 

Note que el valor de la variable se conserva al cerrar la aplicación.

 

Ahora vamos al elevar esto al término de objetos. Creamos una DLL ActiveX, con una clase Global-MultiUse (para simplificar aun más el asunto). Podemos usar el mismo código en la clase. Si ésta DLL ActiveX se referencia en los proyectos, podemos disponer de una variable global y persistente entre aplicaciones. También podemos ampliar la clase para que se comporte como Environ(), al programar una colección persistente en la DLL. Fácil y elegante.

-----

 

Derechos Reservados. Este artículo no debe ser publicado en ningún medio publicitario o sitio de Internet sin previa autorización del autor.