Colaboraciones en el Guille

Código de barras 128 (VB6)

[Imprimir con BarCode 128, tipos A y B]

 

Fecha: 27/May/2006  (23/5/2006)
Autor: Sergio - [email protected]

 


Cuando me pidieron que preparase un programa para la creación de listas, cartas certificadas y acuses de recibos para enviarlos por Correos (de España) me encontré con la dificultad de imprimir los códigos de barras en el formato 128, así que me puse manos a la obra y conseguí crear una clase que me permite imprimir estos códigos tanto en una impresora como en un objeto con DC.

Para probar la clase me hice un pequeño formulario:

Formulario de comprobación para la clase

 

Option Explicit

'////////////////////////////////////////////////////////////////////
'//
'// Gestionar el BarCode 128
'//
'// Diseñado por Sergio Fustero Carreras (2006)
'//
'// Crea e imprime código de barras 128 (tipos A y B)
'//     El tipo C está pendiente de implementar
'// Este código de barras se usa, por ejemplo, en las
'//     cartas certificadas, listas de correos, acuses de
'//     recibo, etc. de Correos (España)
'//
'// Puede imprimir directamente a impresora o a un
'//     contexto de dispositivo (p.e. PictureBox)
'//
'////////////////////////////////////////////////////////////////////

'variables locales para almacenar los valores de las propiedades
Private mvarTabla As colC128 'copia local
'variables locales para almacenar los valores de las propiedades
Private mvarFuente As String 'copia local

Public Enum eTipoDeCódigo128
    cC128_A = 1
    cC128_B = 2
    cC128_C = 3
End Enum

Public Function GenerarBarras(Texto As String, DC As Object, Optional Codificación As eTipoDeCódigo128 = cC128_B, Optional X As Single = -1, Optional Y As Single = -1, Optional Densidad As Single = 15, Optional Alto As Single = 250, Optional ImprimirTexto As Boolean = False, Optional Fuente As String = "System", Optional Tamaño As Integer = 4) As Boolean
'------------------------------
' Genera las barras (secuencias de líneas negras y espacios en blanco)
'       en código 128 del tipo A, B ó C para un contexto dado.
' El contexto puede ser un PictureBox, p.e.
'
' Parámetros:
'
'   -- Texto:
'       El texto del que se van a generar las barras
'   -- DC:
'       Contexto donde se imprimirá. Puede ser util para los que uséis vista previa.
'       Para imprimir directamente a la impresora, usa la función GenerarBarrasImpresora
'           (puede generar barras mucho más pequeñas)
'   -- Codificación:
'       Indicar cC128_A, cC128_B ó cC128_C
'   -- X:
'       Coordenada horizontal
'   -- Y:
'       Coordenada vertical
'   -- Densidad:
'       Ancho de las barras (no todos los anchos funcionan bien)
'   -- Alto:
'       Alto de las barras
'   -- ImprimirTexto:
'       Indicamos si queremos que se imprima el texto debajo de las barras o no
'   -- Fuente:
'       Fuente para el texto (si se quiere imprimir)
'   -- Tamaño:
'       Tamaño de fuente para el texto (si se quiere imprimir)
'------------------------------
Dim Aquí As Single, CBarras As String, C As Integer, D As Integer, Paso, Cx, Ancho
'DC.CurrentX = Densidad
' -- Establece el ancho de las líneas
On Error Resume Next
DC.DrawWidth = 1    'Algunos contextos dan error
On Error GoTo 0
Ancho = Densidad
' -- Establecer posición vertical (fija durante todo el proceso)
If Y = -1 Then
    Y = DC.CurrentY
End If
' -- Establecer posición horizontal inicial
If X = -1 Then
    Aquí = DC.CurrentX
Else
    Aquí = X
End If
' -- Espacio en blanco antes del código de barras
Aquí = Aquí + 10 * Densidad
' -- Conseguir el código de barras
CBarras = Barras(Texto, Codificación)
' -- Imprimir el código de barras (se intercalan líneas y espacios)
For C = 1 To Len(CBarras)
    ' -- Imprimir linea o espacio en blanco
    For D = 1 To Val(Mid(CBarras, C, 1))
        If (C Mod 2) = 0 Then ' 0 = Falso --> Línea
                                     ' 1 = Verdadero --> Espacio
            DC.Line (Aquí, Y)-(Aquí, Y + Alto), vbWhite
        Else
            DC.Line (Aquí, Y)-(Aquí, Y + Alto), vbBlack
        End If
        Aquí = Aquí + Ancho
    Next
Next
For C = 1 To 10 'Espacio en blanco después
    DC.Line (Aquí, Y)-(Aquí, Y + Alto), vbWhite
    Aquí = Aquí + Ancho
Next
' -- Imprimir el texto, si procede
If ImprimirTexto Then
    DC.Font.Name = Fuente
    DC.Font.Size = Tamaño
    DC.CurrentY = Y + Alto
    DC.CurrentX = Cx + (10 * Densidad) + (Aquí - Cx - DC.TextWidth(Texto)) / 2
    DC.Print Texto
End If
End Function

Public Function GenerarBarrasImpresora(Texto As String, Optional Codificación As eTipoDeCódigo128 = cC128_B, Optional X As Single = -1, Optional Y As Single = -1, Optional Densidad As Single = 10, Optional Alto As Single = 250, Optional ImprimirTexto As Boolean = False, Optional Fuente As String = "System", Optional Tamaño As Integer = 4) As Boolean
'------------------------------
' Genera las barras (secuencias de líneas negras y espacios en blanco)
'       en código 128 del tipo A, B ó C directamente en la impresora.
'
' Parámetros:
'
'   -- Texto:
'       El texto del que se van a generar las barras
'   -- Codificación:
'       Indicar cC128_A, cC128_B ó cC128_C
'   -- X:
'       Coordenada horizontal
'   -- Y:
'       Coordenada vertical
'   -- Densidad:
'       Ancho de las barras (no todos los anchos funcionan bien)
'   -- Alto:
'       Alto de las barras
'   -- ImprimirTexto:
'       Indicamos si queremos que se imprima el texto debajo de las barras o no
'   -- Fuente:
'       Fuente para el texto (si se quiere imprimir)
'   -- Tamaño:
'       Tamaño de fuente para el texto (si se quiere imprimir)
'------------------------------
Dim Aquí As Single, CBarras As String, C As Integer, D As Integer, Paso, Cx, Ancho
' -- Establece el ancho de las líneas
Printer.DrawWidth = 5
Ancho = Densidad
' -- Establecer posición vertical (fija durante todo el proceso)
If Y = -1 Then
    Y = Printer.CurrentY
End If
' -- Establecer posición horizontal inicial
If X = -1 Then
    Aquí = Printer.CurrentX
Else
    Aquí = X
End If
' -- Espacio en blanco antes del código de barras
Aquí = Aquí + 10 * Densidad
' -- Conseguir el código de barras
CBarras = Barras(Texto, Codificación)
' -- Imprimir el código de barras (se intercalan líneas y espacios)
For C = 1 To Len(CBarras)
    ' -- Imprimir linea o espacio en blanco
    For D = 1 To Val(Mid(CBarras, C, 1))
        If (C Mod 2) = 0 Then ' 0 = Falso --> Línea
                                     ' 1 = Verdadero --> Espacio
            Printer.Line (Aquí, Y)-(Aquí, Y + Alto), vbWhite
        Else
            Printer.Line (Aquí, Y)-(Aquí, Y + Alto), vbBlack
        End If
        Aquí = Aquí + Ancho
    Next
Next
' -- Si es necesario, pondremos espacio en blanco después
'For C = 1 To 10 'Espacio en blanco después
'    Printer.Line (Aquí, Y)-(Aquí, Y + Alto), vbWhite
'    Aquí = Aquí + Ancho
'Next
' -- Imprimir el texto, si procede
If ImprimirTexto Then
    Printer.Font.Name = Fuente
    Printer.Font.Size = Tamaño
    Printer.CurrentY = Y + Alto
    Printer.CurrentX = Cx + (10 * Densidad) + (Aquí - Cx - Printer.TextWidth(Texto)) / 2
    Printer.Print Texto
End If
End Function


Public Function Barras(Texto As String, Optional Codificación As eTipoDeCódigo128 = cC128_B) As String
'------------------------------
' Crea la secuencia de barras y espacios para el texto dado
'
' Falta de implementar el código para el tipo C
'       (solamente admite números y es mucho más reducido)
'------------------------------
Dim C As Integer, Letra As Integer, Suma As Long
' -- Valor inicial
Select Case Codificación
    Case eTipoDeCódigo128.cC128_A
        Barras = mvarTabla(103 + 1).Patrón
        Suma = 103
    Case eTipoDeCódigo128.cC128_B
        Barras = mvarTabla(104 + 1).Patrón
        Suma = 104
    Case eTipoDeCódigo128.cC128_C
        Barras = mvarTabla(105 + 1).Patrón
        Suma = 105
End Select
' -- Secuencia del texto
If Codificación = cC128_C Then
Else
    For C = 1 To Len(Texto)
        For Letra = 1 To 63
            If mvarTabla(Letra).Código = Mid(Texto, C, 1) Then
                Barras = Barras & mvarTabla(Letra).Patrón
                Suma = Suma + mvarTabla(Letra).Valor * C
                Exit For
            End If
        Next
        If Codificación = cC128_A Then
            For Letra = 0 To 31
                If Letra = Asc(Mid(Texto, C, 1)) Then
                    Barras = Barras & mvarTabla(Letra).Patrón
                    Suma = Suma + mvarTabla(Letra).Valor * C
                    Exit For
                End If
            Next
        Else
            For Letra = 64 To 94
                If mvarTabla(Letra).Código = Mid(Texto, C, 1) Then
                    Barras = Barras & mvarTabla(Letra).Patrón
                    Suma = Suma + mvarTabla(Letra).Valor * C
                    Exit For
                End If
            Next
        End If
        For Letra = 95 To 102
            If Asc(Mid(Texto, C, 1)) = Letra + 32 Then
                Barras = Barras & mvarTabla(Letra).Patrón
                Suma = Suma + mvarTabla(Letra).Valor * C
                Exit For
            End If
        Next
    Next
End If
' -- Código de control
Barras = Barras & mvarTabla((Suma Mod 103) + 1).Patrón
' -- Final
Barras = Barras & mvarTabla(106 + 1).Patrón
End Function


Public Function PonerFuente(Objeto As Object) As Boolean
'---------------------------
' Asigna la fuente (que se debe haber indicado con anterioridad
'       al objeto pasado como parámetro, si la tiene
'---------------------------
Dim C As Integer
PonerFuente = False
On Error Resume Next
For C = 0 To Objeto.FontCount - 1
    If UCase(Trim(mvarFuente)) = UCase(Trim(Objeto.Fonts(C))) Then
        Objeto.Font.Name = mvarFuente
        PonerFuente = True
        Exit For
    End If
Next
If Err.Number <> 0 Then
    PonerFuente = False
End If
On Error GoTo 0
End Function

Public Function AsignarFuente(Fuente As String) As Boolean
Dim C As Integer
'------------------------------
' Asigna la fuente para escribir el dato debajo de las barras
'       (si se quiere)
'------------------------------
AsignarFuente = False
'Recorremos todas las fuentes de pantalla
'       para saber si existe la fuente indicada
For C = 0 To Screen.FontCount - 1
    If UCase(Trim(Screen.Fonts(C))) = UCase(Trim(Fuente)) Then
        AsignarFuente = True
        mvarFuente = Fuente
        Exit For
    End If
Next
End Function

Public Property Get Fuente() As String
'se usa al recuperar un valor de una propiedad, en la parte derecha de una asignación.
'Syntax: Debug.Print X.Fuente
    Fuente = mvarFuente
End Property

Public Function Texto(Frase As String, Optional Clase As eTipoDeCódigo128 = cC128_A) As String
'*******************************************************
'Devuelve el texto correspondiente para usarlo
'   con la fuente de código de barras
'
'*******************************************************
Dim Suma As Long, C As Integer, V As Integer, Resto As Integer
' -- Valor de inicio, según tipo
Select Case Clase
    Case cC128_A
        Suma = 203
    Case cC128_B
        Suma = 204
    Case cC128_C
        Suma = 205
End Select
Texto = Chr(Suma)
' -- Cálculo de la suma a codificar
If Clase = cC128_C Then
    For C = 1 To Len(Frase) Step 2
        V = Val(Mid(Frase, C, 2))
        Texto = Texto & mvarTabla(V).Código
        Suma = Suma + V * C
    Next
Else
    For C = 1 To Len(Frase)
        Select Case Clase
            Case eTipoDeCódigo128.cC128_A
                V = Valor(Mid(Frase, C, 1))
                If V < 64 Then
                    Texto = Texto & Mid(Frase, C, 1)
                End If
            Case eTipoDeCódigo128.cC128_B
                V = Valor(Mid(Frase, C, 1))
                If V < 95 Then
                    Texto = Texto & Mid(Frase, C, 1)
                End If
            Case eTipoDeCódigo128.cC128_C
        End Select
        Suma = Suma + V * C
    Next
End If
' -- Dígito de control
Resto = Suma Mod 103
Texto = Texto + Chr(Resto)
' -- Código final
Texto = Texto & Chr(106)
End Function

Private Function Patrón(Texto As String) As String
'---------------------------
' Devuelve el patrón para un carácter dado
'---------------------------
Dim V As C128
Patrón = ""
For Each V In mvarTabla
    If V.Código = Texto Then
        Patrón = V.Patrón
        Exit For
    End If
Next
End Function

Private Function Valor(Texto As String) As Integer
'---------------------------
' Devuelve el valor numérico correspondiente
'       a un carácter dado
'---------------------------
Dim V As C128
Valor = -1
For Each V In mvarTabla
    If V.Código = Texto Then
        Valor = V.Valor
        Exit For
    End If
Next
End Function

Public Sub InicializarTabla()
'---------------------------
' Crea la tabla con los patrones para cada símbolo
'
' El patrón indica, alternativamente, líneas y espacios
'---------------------------
Dim C As C128
Set C = mvarTabla.Add("A1")
C.Valor = 0
C.Código = " "
C.Patrón = "212222"
Set C = mvarTabla.Add("A2")
C.Valor = 1
C.Código = "!"
C.Patrón = "222122"
Set C = mvarTabla.Add("A3")
C.Valor = 2
C.Código = Chr(34)  ' Comillas dobles
C.Patrón = "222221"
Set C = mvarTabla.Add("A4")
C.Valor = 3
C.Código = "#"
C.Patrón = "121223"
Set C = mvarTabla.Add("A5")
C.Valor = 4
C.Código = "$"
C.Patrón = "121322"
Set C = mvarTabla.Add("A6")
C.Valor = 5
C.Código = "%"
C.Patrón = "131222"
Set C = mvarTabla.Add("A7")
C.Valor = 6
C.Código = "&"
C.Patrón = "122213"
Set C = mvarTabla.Add("A8")
C.Valor = 7
C.Código = "'"
C.Patrón = "122312"
Set C = mvarTabla.Add("A9")
C.Valor = 8
C.Código = "("
C.Patrón = "132212"
Set C = mvarTabla.Add("A10")
C.Valor = 9
C.Código = ")"
C.Patrón = "221213"
Set C = mvarTabla.Add("A11")
'Set C = New C128
C.Valor = 10
C.Código = "*"
C.Patrón = "221312"
Set C = mvarTabla.Add("A12")
C.Valor = 11
C.Código = "+"
C.Patrón = "231212"
Set C = mvarTabla.Add("A13")
C.Valor = 12
C.Código = ","
C.Patrón = "112232"
Set C = mvarTabla.Add("A14")
C.Valor = 13
C.Código = "-"
C.Patrón = "122132"
Set C = mvarTabla.Add("A15")
C.Valor = 14
C.Código = "."
C.Patrón = "122231"
Set C = mvarTabla.Add("A16")
C.Valor = 15
C.Código = "/"
C.Patrón = "113222"
Set C = mvarTabla.Add("A17")
C.Valor = 16
C.Código = "0"
C.Patrón = "123122"
Set C = mvarTabla.Add("A18")
C.Valor = 17
C.Código = "1"
C.Patrón = "123221"
Set C = mvarTabla.Add("A19")
C.Valor = 18
C.Código = "2"
C.Patrón = "223211"
Set C = mvarTabla.Add("A20")
C.Valor = 19
C.Código = "3"
C.Patrón = "221132"
Set C = mvarTabla.Add("A21")
'Set C = New C128
C.Valor = 20
C.Código = "4"
C.Patrón = "221231"
Set C = mvarTabla.Add("A22")
C.Valor = 21
C.Código = "5"
C.Patrón = "213212"
Set C = mvarTabla.Add("A23")
C.Valor = 22
C.Código = "6"
C.Patrón = "223112"
Set C = mvarTabla.Add("A24")
C.Valor = 23
C.Código = "7"
C.Patrón = "312131"
Set C = mvarTabla.Add("A25")
C.Valor = 24
C.Código = "8"
C.Patrón = "311222"
Set C = mvarTabla.Add("A26")
C.Valor = 25
C.Código = "9"
C.Patrón = "321122"
Set C = mvarTabla.Add("A27")
C.Valor = 26
C.Código = ":"
C.Patrón = "321221"
Set C = mvarTabla.Add("A28")
C.Valor = 27
C.Código = ";"
C.Patrón = "312212"
Set C = mvarTabla.Add("A29")
C.Valor = 28
C.Código = "<"
C.Patrón = "322112"
Set C = mvarTabla.Add("A30")
C.Valor = 29
C.Código = "="
C.Patrón = "322211"
Set C = mvarTabla.Add("A31")
'Set C = New C128
C.Valor = 30
C.Código = ">"
C.Patrón = "212123"
Set C = mvarTabla.Add("A32")
C.Valor = 31
C.Código = "?"
C.Patrón = "212321"
Set C = mvarTabla.Add("A33")
C.Valor = 32
C.Código = "@"
C.Patrón = "232121"
Set C = mvarTabla.Add("A34")
C.Valor = 33
C.Código = "A"
C.Patrón = "111323"
Set C = mvarTabla.Add("A35")
C.Valor = 34
C.Código = "B"
C.Patrón = "131123"
Set C = mvarTabla.Add("A36")
C.Valor = 35
C.Código = "C"
C.Patrón = "131321"
Set C = mvarTabla.Add("A37")
C.Valor = 36
C.Código = "D"
C.Patrón = "112313"
Set C = mvarTabla.Add("A38")
C.Valor = 37
C.Código = "E"
C.Patrón = "132113"
Set C = mvarTabla.Add("A39")
C.Valor = 38
C.Código = "F"
C.Patrón = "132311"
Set C = mvarTabla.Add("A40")
C.Valor = 39
C.Código = "G"
C.Patrón = "211313"
Set C = mvarTabla.Add("A41")
C.Valor = 40
C.Código = "H"
C.Patrón = "231113"
Set C = mvarTabla.Add("A42")
C.Valor = 41
C.Código = "I"
C.Patrón = "231311"
Set C = mvarTabla.Add("A43")
C.Valor = 42
C.Código = "J"
C.Patrón = "112133"
Set C = mvarTabla.Add("A44")
C.Valor = 43
C.Código = "K"
C.Patrón = "112331"
Set C = mvarTabla.Add("A45")
C.Valor = 44
C.Código = "L"
C.Patrón = "132131"
Set C = mvarTabla.Add("A46")
C.Valor = 45
C.Código = "M"
C.Patrón = "113123"
Set C = mvarTabla.Add("A47")
C.Valor = 46
C.Código = "N"
C.Patrón = "113321"
Set C = mvarTabla.Add("A48")
C.Valor = 47
C.Código = "O"
C.Patrón = "133121"
Set C = mvarTabla.Add("A49")
C.Valor = 48
C.Código = "P"
C.Patrón = "313121"
Set C = mvarTabla.Add("A50")
C.Valor = 49
C.Código = "Q"
C.Patrón = "211331"
Set C = mvarTabla.Add("A51")
C.Valor = 50
C.Código = "R"
C.Patrón = "231131"
Set C = mvarTabla.Add("A52")
C.Valor = 51
C.Código = "S"
C.Patrón = "213113"
Set C = mvarTabla.Add("A53")
C.Valor = 52
C.Código = "T"
C.Patrón = "213311"
Set C = mvarTabla.Add("A54")
C.Valor = 53
C.Código = "U"
C.Patrón = "213131"
Set C = mvarTabla.Add("A55")
C.Valor = 54
C.Código = "V"
C.Patrón = "311123"
Set C = mvarTabla.Add("A56")
C.Valor = 55
C.Código = "W"
C.Patrón = "311321"
Set C = mvarTabla.Add("A57")
C.Valor = 56
C.Código = "X"
C.Patrón = "331121"
Set C = mvarTabla.Add("A58")
C.Valor = 57
C.Código = "Y"
C.Patrón = "312113"
Set C = mvarTabla.Add("A59")
C.Valor = 58
C.Código = "Z"
C.Patrón = "312311"
Set C = mvarTabla.Add("A60")
C.Valor = 59
C.Código = "["
C.Patrón = "332111"
Set C = mvarTabla.Add("A61")
C.Valor = 60
C.Código = "\"
C.Patrón = "314111"
Set C = mvarTabla.Add("A62")
C.Valor = 61
C.Código = "]"
C.Patrón = "221411"
Set C = mvarTabla.Add("A63")
C.Valor = 62
C.Código = "^"
C.Patrón = "431111"
Set C = mvarTabla.Add("A64")
C.Valor = 63
C.Código = "_"
C.Patrón = "111224"
Set C = mvarTabla.Add("A65")
C.Valor = 64
C.Código = "'"
C.Patrón = "111422"
Set C = mvarTabla.Add("A66")
C.Valor = 65
C.Código = "a"
C.Patrón = "121124"
Set C = mvarTabla.Add("A67")
C.Valor = 66
C.Código = "b"
C.Patrón = "121421"
Set C = mvarTabla.Add("A68")
C.Valor = 67
C.Código = "c"
C.Patrón = "141122"
Set C = mvarTabla.Add("A69")
C.Valor = 68
C.Código = "d"
C.Patrón = "141221"
Set C = mvarTabla.Add("A70")
C.Valor = 69
C.Código = "e"
C.Patrón = "112214"
Set C = mvarTabla.Add("A71")
C.Valor = 70
C.Código = "f"
C.Patrón = "112412"
Set C = mvarTabla.Add("A72")
C.Valor = 71
C.Código = "g"
C.Patrón = "122114"
Set C = mvarTabla.Add("A73")
C.Valor = 72
C.Código = "h"
C.Patrón = "122411"
Set C = mvarTabla.Add("A74")
C.Valor = 73
C.Código = "i"
C.Patrón = "142112"
Set C = mvarTabla.Add("A75")
C.Valor = 74
C.Código = "j"
C.Patrón = "142211"
Set C = mvarTabla.Add("A76")
C.Valor = 75
C.Código = "k"
C.Patrón = "241211"
Set C = mvarTabla.Add("A77")
C.Valor = 76
C.Código = "l"
C.Patrón = "221114"
Set C = mvarTabla.Add("A78")
C.Valor = 77
C.Código = "m"
C.Patrón = "413111"
Set C = mvarTabla.Add("A79")
C.Valor = 78
C.Código = "n"
C.Patrón = "241112"
Set C = mvarTabla.Add("A80")
C.Valor = 79
C.Código = "o"
C.Patrón = "134111"
Set C = mvarTabla.Add("A81")
C.Valor = 80
C.Código = "p"
C.Patrón = "111242"
Set C = mvarTabla.Add("A82")
C.Valor = 81
C.Código = "q"
C.Patrón = "121142"
Set C = mvarTabla.Add("A83")
C.Valor = 82
C.Código = "r"
C.Patrón = "121241"
Set C = mvarTabla.Add("A84")
C.Valor = 83
C.Código = "s"
C.Patrón = "114212"
Set C = mvarTabla.Add("A85")
C.Valor = 84
C.Código = "t"
C.Patrón = "124112"
Set C = mvarTabla.Add("A86")
C.Valor = 85
C.Código = "u"
C.Patrón = "124211"
Set C = mvarTabla.Add("A87")
C.Valor = 86
C.Código = "v"
C.Patrón = "411212"
Set C = mvarTabla.Add("A88")
C.Valor = 87
C.Código = "w"
C.Patrón = "421112"
Set C = mvarTabla.Add("A89")
C.Valor = 88
C.Código = "x"
C.Patrón = "421211"
Set C = mvarTabla.Add("A90")
C.Valor = 89
C.Código = "y"
C.Patrón = "212141"
Set C = mvarTabla.Add("A91")
C.Valor = 90
C.Código = "z"
C.Patrón = "214121"
Set C = mvarTabla.Add("A92")
C.Valor = 91
C.Código = "{"
C.Patrón = "412121"
Set C = mvarTabla.Add("A93")
C.Valor = 92
C.Código = "|"
C.Patrón = "111143"
Set C = mvarTabla.Add("A94")
C.Valor = 93
C.Código = "}"
C.Patrón = "111341"
Set C = mvarTabla.Add("A95")
C.Valor = 94
C.Código = "~"
C.Patrón = "131141"
Set C = mvarTabla.Add("A96")
C.Valor = 95
C.Código = ""
C.Patrón = "114113"
Set C = mvarTabla.Add("A97")
C.Valor = 96
C.Código = ""
C.Patrón = "114311"
Set C = mvarTabla.Add("A98")
C.Valor = 97
C.Código = ""
C.Patrón = "411113"
Set C = mvarTabla.Add("A99")
C.Valor = 98
C.Código = ""
C.Patrón = "411311"
Set C = mvarTabla.Add("A100")
C.Valor = 99
C.Código = ""
C.Patrón = "113141"
Set C = mvarTabla.Add("A101")
C.Valor = 100
C.Código = ""
C.Patrón = "114131"
Set C = mvarTabla.Add("A102")
C.Valor = 101
C.Código = ""
C.Patrón = "311141"
Set C = mvarTabla.Add("A103")
C.Valor = 102
C.Código = ""
C.Patrón = "411131"
Set C = mvarTabla.Add("A104")
C.Valor = 103
C.Código = ""
C.Patrón = "211412"
Set C = mvarTabla.Add("A105")
C.Valor = 104
C.Código = ""
C.Patrón = "211214"
Set C = mvarTabla.Add("A106")
C.Valor = 105
C.Código = ""
C.Patrón = "211232"
Set C = mvarTabla.Add("A107")
C.Valor = 106
C.Código = ""
C.Patrón = "2331112"
'Set C = mvarTabla.Add("A108")
End Sub

Public Property Set Tabla(ByVal vData As colC128)
'se usa al asignar un objeto a la propiedad, en la parte izquierda de una instrucción Set.
'Syntax: Set x.Tabla = Form1
    Set mvarTabla = vData
End Property

Public Property Get Tabla() As colC128
'se usa al recuperar un valor de una propiedad, en la parte derecha de una asignación.
'Syntax: Debug.Print X.Tabla
    Set Tabla = mvarTabla
End Property

Private Sub Class_Initialize()
mvarFuente = "PF_C128.ttf"
Set mvarTabla = New colC128
InicializarTabla
End Sub

 


Fichero con el código de ejemplo: sfustero_cb128.zip - (9,16) KB

(MD5 checksum: EB58C2D33E835B76ACA7B1E6D35FFF98)


ir al índice principal del Guille