Shell 17-11-2021, 21:01
Buenas!.

¿ Qué es una clase exportada ?.

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

Clase Persona:

Código:
Private $nombre As String
Property nombre As String

Public Sub _new(nom As String)
 
  $nombre = nom
 
End

Private Function nombre_Read() As String

Return $nombre  

End

Private Sub nombre_Write(Value As String)

$nombre = Value  

End

Public Sub DiNombre()
 
  Print "Me llamo " & Me.nombre
 
End

Y el FMain:

Código:
Private grupopersonas As Persona[] = [Object.New("Persona", ["Alberto"]), Object.New("Persona", ["Lucía"])]
Private grupopersonas2 As New Persona[]

Public Sub Form_Open()

MostrarSaludo(grupopersonas)
Print "--------------"

Metodo2()
MostrarSaludo(grupopersonas2)

End

Public Sub MostrarSaludo(grupotmp As Persona[])
 
  Dim unapersona As Persona
 
  For Each unapersona In grupotmp
    unapersona.DiNombre()
  Next
 
End

Public Sub Metodo2()
 
  Dim unapersona As Persona
 
  unapersona = New Persona("Alberto")
  grupopersonas2.Add(unapersona)  
 
  unapersona = New Persona("Lucía")
  grupopersonas2.Add(unapersona)
    
 
End

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
Archivos adjuntos
.gz
EjemploClase-0.0.1.tar.gz (Tamaño: 12.25 KB Descargas: 1)
Shell 17-11-2021, 20:30
Buenas!.

Cuando creo un juego en Gambas, suelo usar los eventos KeyPress y KeyRelease del formulario que contiene el DrawingArea.
Pero el propio control DrawingArea tiene los mismos eventos. ¿ Cómo es que no solemos usar mejor los del DrawingArea ?.
Ambos controles tienen los mismos eventos. ¿ Existe un motivo concreto ?.
Cuando con el método SetFocus es suficiente para cambiar de control . Huh

¿ Es aconsejable usar el del Form antes que el del DrawingArea  para esos eventos ?.

Cuando se usa SDL, los eventos de teclado "rondan" en la ventana. Ya, ya sé que no hay un formulario en SDL. Smile

Saludos
Shell 16-11-2021, 15:16
Buenas!

¿ A que no os lo esperabais ?.  Wink

[Imagen: 2G7VRF7.png]

Es como cuando intentas....ejem...con una ejem...y de pronto..error inesperado!. Y es que lo malo de este, es un error encadenado.

En fin. Fue algo inesperado ya que la aplicación no dio error por muchas veces que la ejecutaba.
Que se pone tonto el gambas, oiga!.

"La pelotita" llego al borde inferior y...zaska, error inesperado.

Saludos
Páginas (557):    1 347 348 349 350 351 557   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 286
Último miembro: Emilio Uribe
Temas del foro: 1,720
Mensajes del foro: 8,935
Últimos temas
Archivos .ods
Foro: General
Último mensaje por: tincho, 01-07-2025, 18:54
Respuestas: 8 - Vistas: 283
Publicidad
Foro: Sobre gambas-es.org
Último mensaje por: tincho, 01-07-2025, 18:48
Respuestas: 6 - Vistas: 347
Web con gambas, a ver si ...
Foro: WebApp/WebForms
Último mensaje por: tincho, 01-07-2025, 17:47
Respuestas: 41 - Vistas: 32,624
Un sistema de ayudas cont...
Foro: Videotutoriales
Último mensaje por: guizans, 22-06-2025, 19:55
Respuestas: 3 - Vistas: 313
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.