Visual Basic - Creacion automatica de botones

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Creacion automatica de botones

Publicado por pablo (52 intervenciones) el 22/04/2020 04:25:43
Buenas noches

Les hago una consulta. Tengo un programa para delivey, hoy un cliente me pide modificarlo y me pasa la imagen que adjunte al tema.
Mi duda es como hacer para que el cliente al cargar un producto se cree un botón para que pueda cargar los productos.

Nose si me explico, en mi programa actual, los carga desde cargar articulos y a la hora de entregarlos los puede seleccionar desde un combobox o tipeando en un textbox.
Pero en el caso de la imagen cada producto que se carga tiene que crear un boton, porque por ahi yo le dejo 100 botones para que cargue y resulta que tiene 200 productos.

Espero se entienda mi duda.

Saludos

trabajo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Luis
Val: 36
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Creacion automatica de botones

Publicado por Luis (25 intervenciones) el 22/04/2020 05:34:19
Hola
Entiendo lo que dices, porque hace un tiempo tuve que resolver el problema similar al que tienes.
Por que supongamos que a tu cliente solo le proveiste 3 botones para su refrescos, por ejemplo: Salvietti 2 L, InkaCola 1L y Gatorate 2.5L

Ellos le duran una semana, pero a la siguiente resulta que quiere vender Coca Cola 2L y Pepsi 1L.

Y si antes cargabas de tu tabla Productos solo los 3 anteriores refrescos, de tu base de datos, ahora son 5.

Entonces te recomiendo pongas solo 1 boton para tus refrescos, pero a diferencia de antes, este debe ser la madre de todos los siguientes que naceran de ella, poniendole un valor en su propiedad INDEX, que tienen los commandbutton de Visual Basic 6, y muchos botones OCX de otras partes.

Supongamos que tu boton se llama CmdRefresco, le pusiste 0 en su propiedad INDEX, que al hacerlo forma parte de una matriz de botones, donde comparte todas las propiedades y metodos que los normales, pero si observas por ejemplo en su metodo CLICK, lleva una variable llamada INDEX, con la que te podrás manejar para distinguir tus botones de su matriz.

En este caso Index valdrá 0 (cero) para tu unico boton CmdRefresco(0).

Ahora para crear el resto de sus hijos, haras esto:

Digamos que para tomar su nombre y precio de tu consulta haces esto:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Datos.Recordset = "Select nombre, precio from Productos Where tipo = 'Refresco'"
 
Datos.Recorset.movefirst
dim matrix AS integer
matrix = -1
Do while Datos.EOF = False 'Carga mis datos hasta el final
    matrix = matrix + 1
        if matrix > 0 then
        'solo para los hijos   1  2   3   4
        LOAD CmdRefresco(matrix)
           'supongamos que todos los botones de refresco estan en la misma fila top = 50, pero los separa 100 pixeles
                  CmdRefresco(matrix).top = 50
         CmdRefresco(matrix).left = CmdRefresco(matrix - 1).left + 100
          CmdRefresco(matrix).visible = true
 
 
        end if
        CmdRefresco(matrix).enabled = true
    CmdRefresco(matrix).caption = datos.recordset!nombre  & vbcrlf & datos.recordset!precio
    datos.recordset.movenext
Loop

Luego para borrar sus hijos, cuando quieras haces esto - para el hijo 3 supongamos:
1
Unload CmdREfresco(2)

Eso es todo por mi parte, suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de gilman
Val: 594
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Creacion automatica de botones

Publicado por gilman (359 intervenciones) el 22/04/2020 10:21:57
Si trabajas en VB6, el código que ha puesto Luis sería correcto salvo por una cosa:
Tienes que calcular cuando se cambia de linea, no se si es un número fijo de botones, o si depende de la resulición del la pantalla, el código resultante sería diferente.

Por otro lado, si trabajas en VBNet, no te serviría, y sería mejor que pusieses el post en el hilo de VBNet
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Creacion automatica de botones

Publicado por pablo (52 intervenciones) el 22/04/2020 16:36:08
Muchas gracias. Me sirve para comenzar.
voy a estar probando la semana que viene y voy a tener en cuenta este ejemplo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar