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 (560):    1 350 351 352 353 354 560   
Bienvenido, Invitado
Tienes que registrarte para poder participar en nuestro foro.
Recordarme?
Miembros: 288
Último miembro: shoUsho
Temas del foro: 1,729
Mensajes del foro: 8,987
Últimos temas
Paren...WAIT !!!
Foro: Aplicaciones/Fragmentos de Código
Último mensaje por: guizans, 25-08-2025, 14:49
Respuestas: 3 - Vistas: 448
GambOS
Foro: General
Último mensaje por: guizans, 20-08-2025, 13:58
Respuestas: 0 - Vistas: 310
Gambas y Wayland
Foro: General
Último mensaje por: guizans, 20-08-2025, 13:56
Respuestas: 6 - Vistas: 589
Odio a gb.Report
Foro: General
Último mensaje por: guizans, 19-08-2025, 10:40
Respuestas: 8 - Vistas: 939
Powered By MyBB, © 2002-2025 MyBB Group.
Made with by Curves UI.