https://foro.gambas-es.org/viewtopic.php?f=1&t=316
-----------------------------------
reallydrunk
Martes, 05 Enero 2010, 20:23

¿Vector De Clases?
-----------------------------------
Muy buenas, soy nuevo en la comunidad y novato con Gambas, pero estoy muy dispuesto a aprender.

Tengo un problema al definir un array de una clase que he creado llamada "Planeta", al escribir este código...

[code linenumbers=false syntax=gambas]PUBLIC planet_arr AS Planet[][/code]
...me aparece un error de "unexpected '['",... obviamente estoy haciendo algo mal, pero no se ni siquiera si se puede hacer algo así, espero que podáis ayudarme a aclarar mis dudas.

Gracias, y saludos.


-----------------------------------
mil_arg
Martes, 05 Enero 2010, 21:13

Re: ¿Vector De Clases?
-----------------------------------
Si sabes de antemano la cantidad de elementos puede hacer esto:

PUBLIC planet_arr AS Planet[5]

Suponiendo que tiene 6 elementos, del 0 al 5.

Luego debes inicializar cada uno de los elementos:

for i=0 to 5
   planet_arr [i] = new Planet()
next

Espero te sirva.


-----------------------------------
reallydrunk
Martes, 05 Enero 2010, 21:19

Re: ¿Vector De Clases?
-----------------------------------
Sigue apareciendo el mismo error, pero gracias por la ayuda  ;-)


-----------------------------------
soplo
Martes, 05 Enero 2010, 22:47

Re: ¿Vector De Clases?
-----------------------------------
Hola
Creo que en Gambas 3.0 eso será posible, pero actualmente (al menos en 2.7) los arrays solo pueden ser de tipos nativos osea que tu puedes declarar un array de integer[5] o de integer[] pero no de Planet porque Planet no es un tipo de datos nativo.

[url=http://gambasdoc.org/help/cat/array?es]Matrices nativas

En mi opinión para eso está el tipo de dato nativo object

[code linenumbers=false syntax=gambas]Dim planet_arr AS Object[5] 'crear el array

for i=0 to 4
planet_arr [i] = new Planet 'instanciar una nueva clase planet y meterla en el array
next 

'nos vamos al tercer item del array para mostrar el valor de una variable de la clae allí instanciada
debug planet_arr[3].variable 
[/code]
Prueba con eso
 :lol:


-----------------------------------
reallydrunk
Martes, 05 Enero 2010, 22:54

Re: ¿Vector De Clases?
-----------------------------------
Perfecto soplo, me ha funcionado.

Muchas gracias  :mryellow:


-----------------------------------
mil_arg
Martes, 05 Enero 2010, 23:30

Re: ¿Vector De Clases?
-----------------------------------
Bien! Entonces permitanme decirles que en Gambas 3 si es posible hacer un vector de una clase no nativa. Actualmente estoy usando la version 2.99 y funciona perfectamente.

Saludos!


-----------------------------------
cyberx0x
Sabado, 09 Enero 2010, 20:48

Re: ¿Vector De Clases?
-----------------------------------
y saben si van a existir arrays multidimencionales (matrices por ejemplo) pero que puedan ser declarados como dinamicos o si permitira ya el redim con mas de una dimansion


-----------------------------------
user3304mm7126
Domingo, 10 Enero 2010, 16:10

Re: ¿Vector De Clases?
-----------------------------------
pero como se consiguen esas versiones tan altas de gambas??  :neutral:  yo estoi en la 2.16 y vosotros en la 2.99 o en la 3  :shock:


-----------------------------------
mil_arg
Domingo, 10 Enero 2010, 16:43

Re: ¿Vector De Clases?
-----------------------------------
Desde la web de Gambas explica como instalar Gambas3, pero claro, corre por responsabilidad de cada uno porque esta en desarrollo.

Básicamente se obtiene del repositorio Subversion:

$ mkdir trunk
$ svn checkout https://gambas.svn.sourceforge.net/svnroot/gambas/gambas/trunk/
$ cd trunk
$ ./reconf-all

Nota: No olvide instalar automake y autoconf, de lo contrario el script ./reconf-all no funcionará. 

Luego compilar e instalar. Pero no siempre es necesario tener la ultima versión, depende lo que necesites hacer yo tengo en la misma PC la version 2.13 y la 2.99 y no hay conflicto alguno. Para algunos proyectos utilizo 2.13 y para otros 2.99.

Atte Mil.


-----------------------------------
user3304mm7126
Domingo, 10 Enero 2010, 18:01

Re: ¿Vector De Clases?
-----------------------------------
muchas gracias por responder pero si me dices que aun esta en desarrollo aun no la instalaré  ;-)


-----------------------------------
al081570
Miercoles, 13 Enero 2010, 23:25

Re: ¿Vector De Clases?
-----------------------------------
Yo también he utilizado una clase propia como array en gambas 2.x

Aprovecho y escribo el porque me ha llamado la atención este hilo :)

Resulta que al declarar la array de mi tipo de datos me la declara bien, pero no me deja aplicarle un resize a dicho objeto para redimensionarle la matriz :(

Dejo aquí el código de la declaración:

[code linenumbers=false syntax=gambas]
variables.cpst = NEW clspestanyas[]
[/code]

Y donde trato el objeto:
[code linenumbers=false syntax=gambas]
  PRIVATE SUB agregar()
    cpestanya.resize(npestanyas + 1) ' Añadimos un elemento al array
    actual = npestanyas ' Y lo seleccionamos para editar sobre el
    npestanyas = npestanyas + 1
  END SUB
[/code]
EDITO: me acabo de dar cuenta de la necesidad de utilizar el tipo objeto :)


