Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ordenar controles

Estas en el tema de Ordenar controles en el foro de Visual Basic clásico en Foros del Web. Hola a todos. Recurro a vosotros porque no sé hacer lo que pregunto y por otra parte, he consultado en otros sitios sin éxito. Tal ...
  #1 (permalink)  
Antiguo 10/07/2011, 03:18
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Ordenar controles

Hola a todos. Recurro a vosotros porque no sé hacer lo que pregunto y por otra parte, he consultado en otros sitios sin éxito. Tal vez porque lo que quiero no se puede hacer.

Cita:
Tengo 5 botones.
Están en línea (en vertical) con una diferencia de TOP entre ellos de 100

Command1(0).top = 100
Command1(1).top = 200
Command1(2).top = 300
Command1(3).top = 400
Command1(4).top = 500

Lo que busco es que cada vez que hago clic en uno con lo que será visible false, los que quedan
se recoloquen a partir del TOP = 100.

Es decir, si clico el Command1(3):
Command1(3).visible = False
Command1(0).top = 100
Command1(1).top = 200
Command1(2).top = 300
Command1(4).top = 400

Al clicar otro, por ejemplo el Command1(0):
Command1(0).visible = False
Command1(1).top = 100
Command1(2).top = 200
Command1(4).top = 300

Y así sucesivamente.
El ejercicio que estoy haciendo de preguntas/respuestas, consta de muchos botones, por lo que hacer las posibles variantes una a una es
una barbaridad.

¿Se puede hacer lo que pretendo?

Espero haberlo explicado bien.
Gracias de antemano.
Un saludo
  #2 (permalink)  
Antiguo 11/07/2011, 10:54
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 6 meses
Puntos: 47
Respuesta: Ordenar controles

Hola!!
Creo que esto te puede servir:

Código vb:
Ver original
  1. 'CMD ES EL NOMBRE DEL COMMAND
  2.  
  3. Private Sub cmd_Click(Index As Integer)
  4.     Dim I, J, AUX As Integer
  5.    
  6.     cmd(Index).Visible = False
  7.    
  8.     For I = (Index) To cmd.UBound
  9.         For J = (Index + 1) To cmd.UBound
  10.             If cmd(I).Top < cmd(J).Top Then
  11.                 If cmd(J).Visible = True Then
  12.                     AUX = cmd(J).Top
  13.                     cmd(J).Top = cmd(I).Top
  14.                     cmd(I).Top = AUX
  15.                 End If
  16.             End If
  17.         Next J
  18.     Next I
  19. End Sub

Nos cuentas!!
  #3 (permalink)  
Antiguo 11/07/2011, 11:55
 
Fecha de Ingreso: octubre-2008
Mensajes: 188
Antigüedad: 15 años, 6 meses
Puntos: 3
Respuesta: Ordenar controles

Sí que me sirve. Muchísimas gracias.
Un saludo
  #4 (permalink)  
Antiguo 11/07/2011, 11:57
Avatar de lokoman  
Fecha de Ingreso: septiembre-2009
Mensajes: 502
Antigüedad: 14 años, 6 meses
Puntos: 47
Respuesta: Ordenar controles


Etiquetas: controles
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.