Crear controles runtime y agrandar el form

Iniciado por $Edu$, 25 Septiembre 2011, 01:25 AM

0 Miembros y 1 Visitante están viendo este tema.

$Edu$

Yo ya hice esto pero en .net por lo que se me facilitaron muchas cosas, por propiedades de los controles para que se peguen al form, pero ahora como lo hago en vb6?

Es decir, habra un form que contiene:

label1 text1 command1

Y al precionar el command1: agregara debajo lo mismo quedando asi:

label1 text1 command1
label1 text1 command1

Y todo asi a medida que hace click en el command1 de abajo de todo, por lo que mi form se tendria que ir agrandando a la vez.

Entonces como creo los controles nuevos? me voy basando de las propiedades de Top y Left? pero de los controles anteriores o del form?

x64core


$Edu$

Por que lo dices como si tendria que saberlo? xD

Gracias, de ese link me fui a otro y ahi encontre la forma mas facil de hacerlo.

x64core

:xD me parecia raro eso del form por eso dude a que es lo que te referias :P
ya que e visto que tienes experiencia solamente me parecio raro ;D

$Edu$

Yo siempre pregunto todo xD, siempre alguien te muestra una forma mas accesible de hacer las cosas, como ahora, que lo iba a hacer mucho mas largo y mira como me quedo, por si a alguien le interesa:

Código (vb) [Seleccionar]

Private Sub cmdOK_Click(Index As Integer)

Me.Height = Me.Height + 400
cmdListo.Top = cmdListo.Top + 400

Load lbljugador(lbljugador.UBound + 1)
lbljugador(lbljugador.UBound).Visible = True
lbljugador(lbljugador.UBound).Caption = "Nombre A"
lbljugador(lbljugador.UBound).Height = lbljugador(0).Height
lbljugador(lbljugador.UBound).Width = lbljugador(0).Width
lbljugador(lbljugador.UBound).Top = lbljugador(lbljugador.UBound - 1).Top + 400

Load txtTeam(txtTeam.UBound + 1)
txtTeam(txtTeam.UBound).Visible = True
txtTeam(txtTeam.UBound).Text = "Team FC"
txtTeam(txtTeam.UBound).Height = txtTeam(0).Height
txtTeam(txtTeam.UBound).Width = txtTeam(0).Width
txtTeam(txtTeam.UBound).Top = txtTeam(txtTeam.UBound - 1).Top + 400

Load cmdOK(cmdOK.UBound + 1)
cmdOK(cmdOK.UBound).Visible = True
cmdOK(cmdOK.UBound).Caption = "OK"
cmdOK(cmdOK.UBound).Height = cmdOK(0).Height
cmdOK(cmdOK.UBound).Width = cmdOK(0).Width
cmdOK(cmdOK.UBound).Top = cmdOK(cmdOK.UBound - 1).Top + 400


End Sub


Eso hara lo que pedi al principio del tema, y si alguien tiene una forma distinta de hacerlo, estaria bueno que lo aplique o que me mejore mi codigo ;)

TGa.

un consejo, usa with hace mas legible el codigo

Código (vb) [Seleccionar]

with lbljugador(lbljugador.ubound)
    .visible=true
    .caption="Nombre A"
    .
    .etc
end with

$Edu$

Ok luego lo hare, pero ahora tengo un problema, el programa ya hace lo que pedi al principio como ven en el codigo pero ahora tengo un problema con el mismo boton cmdOK para dejarlo deshabilitado miren:

Código (vb) [Seleccionar]

Private Sub cmdOK_Click(Index As Integer)

Cant = Cant - 1

Equipo(Index) = txtTeam(Index) ' guardamos en un array el equipo
cmdOK(Index).Enabled = False ' deshabilitamos el boton que se presionó
'------------------------------------------------------------------

If Cant > 0 Then ' si Cant es mayor que 0

Me.Height = Me.Height + 400
cmdListo.Top = cmdListo.Top + 400

Load lbljugador(lbljugador.ubound + 1)
lbljugador(lbljugador.ubound).Visible = True
lbljugador(lbljugador.ubound).Caption = "Nombre A"
lbljugador(lbljugador.ubound).Height = lbljugador(0).Height
lbljugador(lbljugador.ubound).Width = lbljugador(0).Width
lbljugador(lbljugador.ubound).Top = lbljugador(lbljugador.ubound - 1).Top + 400

Load txtTeam(txtTeam.ubound + 1)
txtTeam(txtTeam.ubound).Visible = True
txtTeam(txtTeam.ubound).Text = "Team FC"
txtTeam(txtTeam.ubound).Height = txtTeam(0).Height
txtTeam(txtTeam.ubound).Width = txtTeam(0).Width
txtTeam(txtTeam.ubound).Top = txtTeam(txtTeam.ubound - 1).Top + 400

Load cmdOK(cmdOK.ubound + 1)
cmdOK(cmdOK.ubound).Visible = True
cmdOK(cmdOK.ubound).Caption = "OK"
cmdOK(cmdOK.ubound).Height = cmdOK(0).Height
cmdOK(cmdOK.ubound).Width = cmdOK(0).Width
cmdOK(cmdOK.ubound).Top = cmdOK(cmdOK.ubound - 1).Top + 400

Else

cmdListo.Enabled = True ' cuando cant es = 0 nos trae aca y habilitamos el boton

End If


End Sub


Estoy seguro que es porque uso el INDEX, pero ya intente con cmdOk.Ubound ya que se supone que se hara click en el cmdOK de abajo de todo siempre.

El problema es que me deshabilita el boton pero el anterior tambien, como si se creo algo Recursivo xD