Decir que no existe formulario con diseño. Esto lo hice con otro ejemplo.
Son ejemplos que estudio y quiero compartir con vosotros.
Tenemos:
- Modulo principal
- Clase Agenda
- Clase Contacto
En este ejemplo he creado la clase privada Agenda.
Esta clase tiene métodos para añadir un contacto,borrarlo, mostrarlo y mostrar todos los contactos.
La clase contacto son propiedades típicas de un contacto, pocas, pero típicas.
Comencemos por la clase contacto:
(Podría haber creado propiedades). Este ejemplo es el resultado de otros ejemplos, en los que se trata, una clase publica,privada y propia.
La clase Agenda:
Private lista As New Collection
Public Sub CreaContacto(snombre As String, sapellidos As String, stelefono As String)
Dim nuevocontacto As New ClsContacto
With nuevocontacto
.nombre = snombre
.apellidos = sapellidos
.telefono = stelefono
End With
lista.Add(nuevocontacto, stelefono)
End
Public Function MostrarContacto(id As String) As ClsContacto
Return lista[id]
End
Public Function ContarContactos() As Integer
Return lista.Count
End
Public Function BorrarContacto(clave As String)
lista.Remove(clave)
End
Public Sub MostrarTodos()
Dim contacto As ClsContacto
For Each contacto In lista
With contacto
Print "Nombre " & .nombre
Print "Apellidos " & .apellidos
Print "Teléfono " & .telefono
End With
Print
Next
End
Public Sub CreaContacto(snombre As String, sapellidos As String, stelefono As String)
Dim nuevocontacto As New ClsContacto
With nuevocontacto
.nombre = snombre
.apellidos = sapellidos
.telefono = stelefono
End With
lista.Add(nuevocontacto, stelefono)
End
Public Function MostrarContacto(id As String) As ClsContacto
Return lista[id]
End
Public Function ContarContactos() As Integer
Return lista.Count
End
Public Function BorrarContacto(clave As String)
lista.Remove(clave)
End
Public Sub MostrarTodos()
Dim contacto As ClsContacto
For Each contacto In lista
With contacto
Print "Nombre " & .nombre
Print "Apellidos " & .apellidos
Print "Teléfono " & .telefono
End With
Next
End
En parte son ejemplos derivados de VB, adaptados a gambas. Nosotros no tenemos en colecciones propiedades como .Item que
se usa para acceder a los elementos con un índice (como en los arrays) en vez de usar la clave ( cualidad de las colecciones).
Como habréis observado en esta "peculiar" agenda he usado como clave el teléfono, en vez del nombre. Jeje.
Bien, vayamos al formulario:
Private agenda As New ClsAgenda
Public Sub _new()
End
Public Sub Form_Open()
CrearContactos()
LeerContacto()
End
Public Sub CrearContactos()
agenda.CreaContacto("María", "Lopez Alianza", "945-231232")
agenda.CreaContacto("Dolores", "Rodriguez Macias", "956-231223")
agenda.CreaContacto("Pedro", "Martinez Girón", "956-122312")
agenda.CreaContacto("Sin nombre", "Sin apellidos", "999-999999")
End
Public Sub LeerContacto(Optional telf As String)
Dim contacto As New ClsContacto
If Not telf Then telf = "999-999999"
contacto = agenda.MostrarContacto(telf)
If contacto Then
With contacto
Print "Nombre: " & .nombre
Print "Apellidos: " & .apellidos
Print "Teléfono: " & .telefono
End With
Else
Print "El contacto no existe"
Endif
Print
End
Public Sub _new()
End
Public Sub Form_Open()
CrearContactos()
LeerContacto()
End
Public Sub CrearContactos()
agenda.CreaContacto("María", "Lopez Alianza", "945-231232")
agenda.CreaContacto("Dolores", "Rodriguez Macias", "956-231223")
agenda.CreaContacto("Pedro", "Martinez Girón", "956-122312")
agenda.CreaContacto("Sin nombre", "Sin apellidos", "999-999999")
End
Public Sub LeerContacto(Optional telf As String)
Dim contacto As New ClsContacto
If Not telf Then telf = "999-999999"
contacto = agenda.MostrarContacto(telf)
If contacto Then
With contacto
Print "Nombre: " & .nombre
Print "Apellidos: " & .apellidos
Print "Teléfono: " & .telefono
End With
Else
Print "El contacto no existe"
Endif
End
CrearContacto hace lo que dice el procedimiento o método.
Cuando usamos el procedimiento LeerContactos, tenemos un parámetro opcional que podemos pasar al procedimiento,
que seria el teléfono (entre comillas). Este procedimiento llama al método mostrar de la agenda que hace:
- Si le pasamos el teléfono "999-999999" nos crea un contacto que no tiene nombre y apellidos.
(Supongo que a veces por los requisitos que tenga una aplicación podemos tener la necesidad de crear un contacto "nulo" o "neutro").
- Si le pasamos un teléfono que no existe como clave, nos dirá que no existe el contacto.
Naturalmente con un formulario seria mejor, pero lo importante es entender el uso de la colección de objetos. Objetos que tienen
sus propiedades diferentes. Cuando usamos colecciones normales, solo almacenamos un valor y su clave.
Aquí tenéis el código para que podáis jugar con el.
Saludos
ClasePrivada.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | ClasePrivada.tar.gz | |
Tamaño: | 6.8 KB | |
Descargado: | 26 veces |
ClasePrivada.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | ClasePrivada.tar.gz | |
Tamaño: | 6.8 KB | |
Descargado: | 26 veces |
ClasePrivada.tar.gz | ||
Descripción: | Descargar |
|
Nombre del archivo: | ClasePrivada.tar.gz | |
Tamaño: | 6.8 KB | |
Descargado: | 26 veces |