Saltar al contenido

VB6. Convertir cuotas en porcentajes version 2

Cambio de cuotas en acción

En un primer ejemplo hemos desarrollado una pequeña aplicación en VB6 para convertir las cuotas de las casas de apuestas a porcentajes.

En la entrada de hoy y en las dos siguientes vamos a modificar totalmente la estructura del programa, haciéndolo más “profesional“, a pesar de que el resultado ni el formulario cambian para el usuario.

El ejercicio propuesto consiste en transformar el código insertado en el formulario a nuevo código en objetos (clases) que permitan su reutilización.

Public Sub Main

El primer cambio es iniciar el software desde un módulo, cuya rutina se llama Main.

Creando sub Main

Creando sub Main

El segundo cambio es modificar las propiedades del proyecto para que se inicie desde Sub Main:

Iniciar desde Sub Main

Iniciar desde Sub Main

Reconstrucción del software

El tercer cambio es agregar una Clase, a la que llamaremos CalculaCuotas.cls

Crear clase CalculaCuotas.cls

Crear clase CalculaCuotas.cls

Si ejecutamos la aplicación tal y como está en este momento, no veremos nada! Se ejecuta Sub Main pero como no tenemos código … no sucede nada! También hemos puesto un nombre al formulario, que pasa de Form1 a frmCoutas.

En el módulo mInicio, creamos un objeto privado bForm para llamar al formulario frmCoutas. Dentro de Sub Main, inicializamos la variable bForm, cargamos el objeto y lo mostramos. Con estos mismos cambios, de nuevo, la aplicación está nuevamente operativa.


Option Explicit
Private bForm As frmCoutas

Public Sub Main()
Set bForm = New frmCoutas
Load bForm
bForm.Show
End Sub

Usando la clase CalculaCoutas

Sin embargo, la versión definitiva no es esta. Este mismo código lo pondremos, en lugar de en el módulo mInicio, en la clase cCalculaCoutas. Mientras que en código de Sub Main quedará simplificado a crear una variable que llame a la clase CalculaCuotas.

Usando cCalculaCuotas

Usando cCalculaCuotas

Todo sigue funcionando tal y cómo lo hacía en la versión 1, a pesar de haber introducido tanto cambio y muchos más archivos. Este hecho no es “gratuito” y en breve comprobareis el porqué de tanto cambio y tanta modificación tan drástica para un programa que en su versión inicial era muy simple.

Para controlar la visualización del formulario, creamos en la clase los eventos Show y Hide:

Public Sub Show()
bForm.Show
End Sub
Public Sub Hide()
bForm.Hide
End Sub

Creamos un método público Coutas para introducirle valores, y eliminar DatosIniciales del formulario. Los datos lo hemos puesto tipo cadena para poder aplicarle la función LeeValor, que me permite controlar si son numéricos o no.

Public Sub Cuotas(cL As String, cE As String, cV As String)
' cL, cE y cV para cuotas Locales, Empate y Visitantes
dValor(0) = LeeValor(cL)
dValor(1) = LeeValor(cE)
dValor(2) = LeeValor(cV)
MuestraResultados
End Sub

Además, ya no necesitamos ningún evento en Form_load de frmCoutas, sino que queda (casi) todo controlado  desde la clase.

y de momento, hasta aquí hemos llegado. En la versión 3 introduciremos el control de eventos del formulario para que sea controlado por la clase cCalculaCoutas, de forma que sea la clase la que tenga en control absoluto del formulario, y no al revés (caso de la primera versión).

Manejando Datos Newsletter

Noticias, entradas, eventos, cursos, … News, entrances, events, courses, …


Gracias por unirte a la newsletter. Thanks for joining the newsletter.