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

Crear controles en tiempo de ejecución y ordenar

Estas en el tema de Crear controles en tiempo de ejecución y ordenar en el foro de Visual Basic clásico en Foros del Web. Hola amigos a ver si me ayudan con esto estoy queriendo crear controles en tiempo de ejecución y ordenarlo aca dejo un screen como me ...
  #1 (permalink)  
Antiguo 01/02/2011, 20:33
Avatar de arielenter  
Fecha de Ingreso: abril-2009
Mensajes: 75
Antigüedad: 15 años
Puntos: 2
Pregunta Crear controles en tiempo de ejecución y ordenar

Hola amigos a ver si me ayudan con esto estoy queriendo crear controles en tiempo de ejecución y ordenarlo aca dejo un screen como me va quedando pero este solo me crea asi:



no lo puedo bajar hacia abajo.

Asi es como quiero que salga:


ESTE ES MI CODIGO


Código:
Private Sub cmdCrear_Click()
    
    Dim i As Integer
    For i = 1 To 4
        Load Command1(i)
        Command1(i).Left = Command1(i - 1).Left + Command1(i).Width
        Command1(i).Visible = True
    Next
    
End Sub
  #2 (permalink)  
Antiguo 01/02/2011, 20:39
Avatar de culd  
Fecha de Ingreso: noviembre-2003
Mensajes: 959
Antigüedad: 20 años, 6 meses
Puntos: 19
Respuesta: Crear controles en tiempo de ejecución y ordenar

Te falta la posicion TOP... que indica la altura...

Tenes que crear manualmente dos botones con el tamaño que quieras, entonces ahi restas el top del de abajo menos el de arriba, y ahi te queda cuanto tendrias que ir sumando
  #3 (permalink)  
Antiguo 01/02/2011, 20:46
Avatar de arielenter  
Fecha de Ingreso: abril-2009
Mensajes: 75
Antigüedad: 15 años
Puntos: 2
Respuesta: Crear controles en tiempo de ejecución y ordenar

como seria 2 botones amigo mi intención es crear los controles de una determinada posición de acuerdo a la cantidad de archivos que va a haber en un directorio con la columna que yo le he indicado ahi en el FOR I = 1 TO 4 le digo que cree 4 columnas a partir de un control
  #4 (permalink)  
Antiguo 02/02/2011, 05:09
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 3 meses
Puntos: 89
Respuesta: Crear controles en tiempo de ejecución y ordenar

Sería algo así, pero deberías añadir casos concretos para los primeros botones de cada fila y cada columna para no acceder a posiciones inexistentes.

En tu código, al poner la propiedad Left estabas utilizando el Width de tu botón, cuando hay que utilizar el del botón anterior (por si los botones no fueran iguales)

Código:
Private Sub cmdCrear_Click()
    
    Dim i As Integer
	Dim j As Integer
	Dim index As Integer
	
	For j = 0 To filas - 1
		For i = 1 To columnas
			index = j*columnas + i
			Load Command1(index)
			Command1(index).Left = Command1(index-1).Left + Command1(index-1).Width
			Command1(index).Top = Command1(index-(j*columnas)).Top + Command1(index-(j*colunas)).Height
			Command1(index).Visible = True
		Next i
	Next j
    
End Sub
  #5 (permalink)  
Antiguo 02/02/2011, 06:35
Avatar de arielenter  
Fecha de Ingreso: abril-2009
Mensajes: 75
Antigüedad: 15 años
Puntos: 2
Respuesta: Crear controles en tiempo de ejecución y ordenar

Gracias por ayudar Heimish2000 pero no me crea ningún control amigo. Por el tamaño del control no te preocupes siempre va a tener un tamaño exacto siempre va a ser cuadrado el boton
  #6 (permalink)  
Antiguo 02/02/2011, 16:38
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Crear controles en tiempo de ejecución y ordenar

No he comprobado el código de heimish2000, pero creo que no te crea botones porque no has asignado valor a las variables filas y columnas, de modo que te crea 0 filas y 0 columnas.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Etiquetas: controles, ejecucion, ordenar
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:25.