Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: $Edu$ en 25 Septiembre 2011, 01:25 am



Título: Crear controles runtime y agrandar el form
Publicado por: $Edu$ en 25 Septiembre 2011, 01:25 am
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?


Título: Re: Crear controles runtime y agrandar el form
Publicado por: x64core en 25 Septiembre 2011, 01:33 am
creo que eso te refieres, es facil:

http://www.recursosvisualbasic.com.ar/htm/trucos-codigofuente-visual-basic/15.htm

con el form :| modificando las propiedades :|


Título: Re: Crear controles runtime y agrandar el form
Publicado por: $Edu$ en 25 Septiembre 2011, 02:21 am
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.


Título: Re: Crear controles runtime y agrandar el form
Publicado por: x64core en 25 Septiembre 2011, 02:29 am
: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


Título: Re: Crear controles runtime y agrandar el form
Publicado por: $Edu$ en 25 Septiembre 2011, 16:38 pm
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
  1. Private Sub cmdOK_Click(Index As Integer)
  2.  
  3. Me.Height = Me.Height + 400
  4. cmdListo.Top = cmdListo.Top + 400
  5.  
  6. Load lbljugador(lbljugador.UBound + 1)
  7. lbljugador(lbljugador.UBound).Visible = True
  8. lbljugador(lbljugador.UBound).Caption = "Nombre A"
  9. lbljugador(lbljugador.UBound).Height = lbljugador(0).Height
  10. lbljugador(lbljugador.UBound).Width = lbljugador(0).Width
  11. lbljugador(lbljugador.UBound).Top = lbljugador(lbljugador.UBound - 1).Top + 400
  12.  
  13. Load txtTeam(txtTeam.UBound + 1)
  14. txtTeam(txtTeam.UBound).Visible = True
  15. txtTeam(txtTeam.UBound).Text = "Team FC"
  16. txtTeam(txtTeam.UBound).Height = txtTeam(0).Height
  17. txtTeam(txtTeam.UBound).Width = txtTeam(0).Width
  18. txtTeam(txtTeam.UBound).Top = txtTeam(txtTeam.UBound - 1).Top + 400
  19.  
  20. Load cmdOK(cmdOK.UBound + 1)
  21. cmdOK(cmdOK.UBound).Visible = True
  22. cmdOK(cmdOK.UBound).Caption = "OK"
  23. cmdOK(cmdOK.UBound).Height = cmdOK(0).Height
  24. cmdOK(cmdOK.UBound).Width = cmdOK(0).Width
  25. cmdOK(cmdOK.UBound).Top = cmdOK(cmdOK.UBound - 1).Top + 400
  26.  
  27.  
  28. 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 ;)


Título: Re: Crear controles runtime y agrandar el form
Publicado por: TGa. en 26 Septiembre 2011, 02:17 am
un consejo, usa with hace mas legible el codigo

Código
  1. with lbljugador(lbljugador.ubound)
  2.    .visible=true
  3.    .caption="Nombre A"
  4.    .
  5.    .etc
  6. end with
  7.  


Título: Re: Crear controles runtime y agrandar el form
Publicado por: $Edu$ en 26 Septiembre 2011, 02:47 am
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
  1. Private Sub cmdOK_Click(Index As Integer)
  2.  
  3. Cant = Cant - 1
  4.  
  5. Equipo(Index) = txtTeam(Index) ' guardamos en un array el equipo
  6. cmdOK(Index).Enabled = False ' deshabilitamos el boton que se presionó
  7. '------------------------------------------------------------------
  8.  
  9. If Cant > 0 Then ' si Cant es mayor que 0
  10.  
  11. Me.Height = Me.Height + 400
  12. cmdListo.Top = cmdListo.Top + 400
  13.  
  14. Load lbljugador(lbljugador.ubound + 1)
  15. lbljugador(lbljugador.ubound).Visible = True
  16. lbljugador(lbljugador.ubound).Caption = "Nombre A"
  17. lbljugador(lbljugador.ubound).Height = lbljugador(0).Height
  18. lbljugador(lbljugador.ubound).Width = lbljugador(0).Width
  19. lbljugador(lbljugador.ubound).Top = lbljugador(lbljugador.ubound - 1).Top + 400
  20.  
  21. Load txtTeam(txtTeam.ubound + 1)
  22. txtTeam(txtTeam.ubound).Visible = True
  23. txtTeam(txtTeam.ubound).Text = "Team FC"
  24. txtTeam(txtTeam.ubound).Height = txtTeam(0).Height
  25. txtTeam(txtTeam.ubound).Width = txtTeam(0).Width
  26. txtTeam(txtTeam.ubound).Top = txtTeam(txtTeam.ubound - 1).Top + 400
  27.  
  28. Load cmdOK(cmdOK.ubound + 1)
  29. cmdOK(cmdOK.ubound).Visible = True
  30. cmdOK(cmdOK.ubound).Caption = "OK"
  31. cmdOK(cmdOK.ubound).Height = cmdOK(0).Height
  32. cmdOK(cmdOK.ubound).Width = cmdOK(0).Width
  33. cmdOK(cmdOK.ubound).Top = cmdOK(cmdOK.ubound - 1).Top + 400
  34.  
  35. Else
  36.  
  37. cmdListo.Enabled = True ' cuando cant es = 0 nos trae aca y habilitamos el boton
  38.  
  39. End If
  40.  
  41.  
  42. 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