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.
Agrupar Clases En Que Tipo De Variable?
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
https://foro.gambas-es.org/show_post.php?p=33276
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
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
Subject: Re: Agrupar Clases En Que Tipo De Variable?
Last edited by vuott on Monday, 18 July 2016, 20:35; edited 3 times in total
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[ ].
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
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
' 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
' 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
Subject: Re: Agrupar Clases En Que Tipo De Variable?
esto es posible....
clase CuboMovil
dim GrupoCuboMovil as new CuboMovil[]
?????
clase CuboMovil
dim GrupoCuboMovil as new CuboMovil[]
?????
Subject: Re: Agrupar Clases En Que Tipo De Variable?
Practicamente sì.
A ver un ejemplo muy muy sencillo.
Tenemos una Clase secundaria, llamada v3ctor:
La Clase principal es esta:
v3ctor escribió: [Ver mensaje]
Practicamente sì.
A ver un ejemplo muy muy sencillo.
Tenemos una Clase secundaria, llamada v3ctor:
La Clase principal es esta:
Page 1 of 1
You cannot post new topicsYou 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