http://www.gambas-es.org/viewtopic.php?f=1&t=644&p=3627#p3627
-----------------------------------
jguardon
Jueves, 27 May 2010, 19:53

Soporte para Estructuras en Gambas 3
-----------------------------------
Hola

Según publica Benoît en la lista gambas-users, se ha añadido soporte para la definición de Estructuras dentro de nuestras clases, como nuevo tipo de dato.

No está terminado al 100%, ya que de momento no se pueden pasar estructuras a funciones Extern y sólo pueden declararse como Públicas, pero asegura que en breve será posible.

Para definir una estructura se debe hacer dentro de una clase o módulo de esta forma:

[code linenumbers=false syntax=gambas]
Public Struct NombreEstructura
    var1 As Integer
    var2 As String
    'var3 As Tipo
End Struct[/code]

Una estructura es una clase sólo con miembros públicos que realmente son variables.

Se puede declarar una estructura dentro de un objeto de la siguiente manera (embebida):

[code linenumbers=false syntax=gambas]Private ClassVariable As Struct StructName[/code]

Fijaros en la palabra clave "Struct" delante del nombre de la estructura.

Una estructura embebida no es un objeto en sí mismo. Sus datos son asignados dentro del objeto donde se ha declarado. Parecido a un Array estático, aunque no se pueden hacer "arrays embebidos" de estructuras estáticas.

Es posible anidar estructuras dentro de otras, ya que son clases. Un ejemplo un tanto estúpido podría ser:

[code linenumbers=false syntax=gambas]
Public Struct Car
    Model As String
    Registration As String
    MaxSpeed As Float
End Struct

Public Struct Person
    Name As String
    Age As Integer
    BirthDate As Date
    FirstCar As Struct Car
    SecondCar As Struct Car
End Struct
[/code]

----

La última revisión de Gambas 3 tiene otro cambio: los objetos que no disparan eventos ya no asignan una estructura interna para el manejo de eventos, ahorrando 4 punteros (16 bytes en sistemas de 32 bits) por cada objeto.

También el componente gb.Report de Fabien Bodard está casi terminado, por lo que en breve será posible lanzar una versión Alpha de Gambas3, justo después de que el Gestor de Empaquetado esté finalizado.

Se anima a todos a usar la última revisión para hacer pruebas y buscar posibles fallos para reportar a Benoît. Cuanto antes encontremos los fallos, antes serán corregidos y de esta forma pronto veremos el lanzamiento oficial de Gambas3.

Saludos


