Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejemplo De Una Clase Privada.Agenda
Autor Mensaje
Responder citando   Descargar mensaje 
Mensaje Ejemplo De Una Clase Privada.Agenda 
 
Hola!.

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.

Public nombre As String
Public apellidos As String
Private $stelefono As String
Property telefono As String


Private Function telefono_Read() As String
  Return $stelefono  
End

Private Sub telefono_Write(Value As String)
  $stelefono = Value
End
 


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
 


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
 


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
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario