Comunidad Gambas-es

Versión completa: Clases exportadas
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Buenas!.

¿ Qué es una clase exportada ?.

Veréis, estoy probando la clase object. Y creé este ejemplo:

Clase Persona:

GAMBAS
  1. Private $nombre As String
  2.  
  3. Public Sub _new(nom As String)
  4.  
  5.   $nombre = nom
  6.  
  7.  
  8. Private Function nombre_Read() As String
  9.  
  10. Return $nombre  
  11.  
  12.  
  13. Private Sub nombre_Write(Value As String)
  14.  
  15. $nombre = Value  
  16.  
  17.  
  18. Public Sub DiNombre()
  19.  
  20.   Print "Me llamo " & Me.nombre
  21.  



Y el FMain:

GAMBAS
  1. Private grupopersonas As Persona[] = [Object.New("Persona", ["Alberto"]), Object.New("Persona", ["Lucía"])]
  2. Private grupopersonas2 As New Persona[]
  3.  
  4. Public Sub Form_Open()
  5.  
  6. MostrarSaludo(grupopersonas)
  7. Print "--------------"
  8.  
  9. Metodo2()
  10. MostrarSaludo(grupopersonas2)
  11.  
  12.  
  13. Public Sub MostrarSaludo(grupotmp As Persona[])
  14.  
  15.   Dim unapersona As Persona
  16.  
  17.   For Each unapersona In grupotmp
  18.     unapersona.DiNombre()
  19.   Next
  20.  
  21.  
  22. Public Sub Metodo2()
  23.  
  24.   Dim unapersona As Persona
  25.  
  26.   unapersona = New Persona("Alberto")
  27.   grupopersonas2.Add(unapersona)  
  28.  
  29.   unapersona = New Persona("Lucía")
  30.   grupopersonas2.Add(unapersona)
  31.     
  32.  



La salida fue prácticamente igual.
 
Cita: 
Me llamo Alberto
Me llamo Lucía
--------------
Me llamo Alberto
Me llamo Lucía

La posibilidad que me dio Object fue la de poder declarar el objeto en el propio Array.
( En verdad son practicas similares que encuentro con Python y las intento reproducir en Gambas)

Según dice la ayuda de Gambas:
Cita:This routine works exactly like the NEW operator, except that the class name is specified at runtime and not at compile time.

Supongo que esto lo hace más lento.

Ahora dice también:
 
Cita:As the class is specified by name, only exported classes can be instanciated.

¿ Exportadas ?. ¿ Son las del propio desarrollador ?.

Ok, encontré export en la ayuda de Gambas, pero eso suele ser para controles.
 
Cita:Esto significa que la clase será visible desde un programa principal cuando creemos un componente.

Saludos
Echa un vistazo a esta clase. Puedes usar 'Export' para añadir una herramienta a la 'ToolBox'.

[Imagen: Marquee1.png]
Gracias Cogier.

Ademas he añadido a marcadores el lugar donde se encuentran los proyectos  del foro de GambasOne. Smile
La palabra traducida del lugar del foro a español es como escaparate, vitrina. (ShowCase).
Literalmente, claro.

Saludos
Interesante: -
[Imagen: showcase.png]
Esta web parece más interesante o puede que "afine" más el significado de la palabra.
 
Cita:La primera definición de escaparate en el diccionario es una vitrina de vidrio utilizada para exhibir objetos en un museo o tienda. Otra definición de escaparate es un entorno en el que todo se puede mostrar de la mejor manera posible. Showcase también es exhibir o exhibir.

Educalingo

Saludos