Agrupar Clases En Que Tipo De Variable?


Subject: Agrupar Clases En Que Tipo De Variable?
buenas,

supongamos que tenemos un programa x, que usa clases....
supongamos que quiero agrupar x clase en un array de clases.... u objetos no se, por eso la pregunta.

pues bien como se agrupan? en que tipo de variable?

variable de objeto[] ?

la pregunta es especifica para agrupar un tipo de clase solo, en un array.... pero también se puede comentar si quisiéramos guardar en un array o agruparlas siendo clases de distinto tipo

saludos.

Subject: Re: Agrupar Clases En Que Tipo De Variable?
v3ctor, uhmmm....por ahora me refiero a lo que escribí jguardon en este su mensaje:

https://foro.gambas-es.org/show_post.php?p=33276

Profile PM  
Subject: Re: Agrupar Clases En Que Tipo De Variable?
Efectivamente, puedes crear un array Object[] que contenga diferentes instancias de una clase, de la misma clase, puesto que no tiene sentido mezclar tipos diferentes dentro del mismo array.

También podrías usar colecciones, aunque depende del uso que vayas a darle, siempre serán más rápidos los arrays dinámicos.

Saludos

Profile PM  
Subject: Re: Agrupar Clases En Que Tipo De Variable?
Generalmente una Clase (...o mejor: más objetos de una Clase) puede ser agrupada en una variable vectorial de su mismo tipo.

Por lo que se rifiere a la agregación de dos o más Clases de tipo diferente, tu puede usar:
- una Collection (como ha dicho jguardon);
- una variable array de tipo Variant[ ];
- una Estructura.

En este ejemplo creamos 4 botones y 4 label.
Luego agregamos los 4 botones en una variable array de tipo Button[ ], y las 4 Label en una variable array de tipo Label[ ] .
Tambien agregamos cada objeto (4 botones y 4 Label) juntos en una variable de tipo Variant[ ].

En fin las dos primeras variables array serán agregadas en una sola variable de tipo Variant[ ].

Public Sub Form_Open()

Dim b As Byte
Dim bt As Button
Dim botones As New Button[]
Dim lb As Label
Dim llbb As New Label[]
Dim todo As New Variant[]
Dim arraydearray As New Variant[]

' Creamos y luego agrupamos 4 botones en un array de tipo "Button[]":
For b = 1 To 4
With bt = New Button(Me)
.W = 60
.H = 30
.X = .W * b
.Y = 50
.Name = "Button " & CStr(b)
.Text = .Name
End With
botones.Push(bt)
todo.Push(bt)
Next

Print botones.Count

' Creamos y luego agrupamos 4 label en un array de tipo "Label[]":
For b = 1 To 4
With lb = New Label(Me)
.W = 60
.H = 30
.X = .W * b
.Y = 100
.Name = "Label " & CStr(b)
.Border = Border.Dotted
.Alignment = Align.Center
.Text = .Name
End With
llbb.Push(lb)
todo.Push(lb)
Next

Print llbb.Count
Print

' A ver el nombre de los objetos ensertados en el array "todo":
For b = 0 To todo.Max
Print todo[b].Name
Next


' Agrupamos los dos array en un array de tipo "Variant[]":
With arraydearray
.Push(botones)
.Push(llbb)
End With
Print
' Vamos a ver el testo de la 3^ Label:
Print arraydearray[1][2].Text

End

Last edited by vuott on Monday, 18 July 2016, 20:35; edited 3 times in total
Profile PM  
Subject: Re: Agrupar Clases En Que Tipo De Variable?
esto es posible....

clase CuboMovil


dim GrupoCuboMovil as new CuboMovil[]


?????

Subject: Re: Agrupar Clases En Que Tipo De Variable?
v3ctor escribió: [Ver mensaje]
esto es posible....

?????


Practicamente sì.

A ver un ejemplo muy muy sencillo.

Tenemos una Clase secundaria, llamada v3ctor:
' gambas class file



Public Sub Calculus(i As Integer) As Integer

Return i * 100

End



La Clase principal es esta:
Public v3 As V3ctor


Public Sub Form_Open()

Dim vv33 As New V3ctor[]
Dim i As Integer


v3 = New V3ctor

vv33.Push(v3)

i = vv33[0].Calculus(4)

ValueBox1.Value = i

End

Profile PM  

Page 1 of 1


  
You cannot post new topics
You cannot reply to topics
You cannot edit your posts
You cannot delete your posts
You cannot vote in polls
You cannot attach files
You can download files
You cannot post calendar events

   

This is a "Lo-Fi" version of our main content. To view the full version with more information, formatting and images, please click here.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Generation Time: 0.129s (PHP: 0% SQL: 100%)
SQL queries: 24 - Debug Off - GZIP Enabled