Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: mastercss en 16 Junio 2010, 14:58 pm



Título: Problema al cargar formulario
Publicado por: mastercss en 16 Junio 2010, 14:58 pm
Resulta que estoy realizando un programa que haga macros web. NEcesito cargar distintos formularios que son activados por botones, pero mi problema es el siguiente:

Código
  1. Private Sub Command1_click()
  2. Load Form2
  3. Form2.Show



No lo carga me tira este error:

Error 404 en tiempo de ejecucion se requiere un objeto.

HE buscado el error pero no tiene sentido, los form no hay que declararlos asi que estoy perdido. Muchas gracias de antemano.


Salu2


Título: Re: Problema al cargar formulario
Publicado por: Maik33 en 16 Junio 2010, 15:03 pm
Pero tu has agregado un nuevo formulario?
Menu proyecto>agregar formulario, y me comentas si t da error.


Título: Re: Problema al cargar formulario
Publicado por: Psyke1 en 16 Junio 2010, 15:14 pm
mmmm
quieres crear un form en tiempo de ejecucion o simplemente cargar un formulario que ya tienes en el proyecto??  :huh:
Si es lo segundo con esto bastaria:
Código
  1. Form2.Show
Si no es eso revisa si el formulario que quieres mostrar tiene ese nombre... :P

Salu2!


Título: Re: Problema al cargar formulario
Publicado por: mastercss en 16 Junio 2010, 15:35 pm
El formulario lo he hecho en el proyecto pero si pongo unicamente Form2.Show no lo carga.

La verdad me ha estrañado mucho el error.



Salu2


Título: Re: Problema al cargar formulario
Publicado por: Maik33 en 16 Junio 2010, 16:00 pm
Tienes el formulario y te sige dando error?

Pues eso, como dijo *PsYkE1* es porque le abras lamado a tu 2º form de diferente manera, sino no se me ocurre porque puede ser


Título: Re: Problema al cargar formulario
Publicado por: mastercss en 16 Junio 2010, 16:21 pm
Haber, es un bot para xnova el clon de ogame. El formualrio principal tiene los botones conectar, hangar, edificios, investigaciones y defensa.

El code del form1 es:

Código
  1. Dim doc As Object
  2. Dim var_input As Object
  3. Dim var_value As Object
  4. Dim var_but As Object
  5.  
  6. Private Sub Command1_Click()
  7. Set doc = WebBrowser1.Document
  8. Set var_input = doc.getelementbyid("username")
  9. var_input.Value = Text1.Text
  10. Set var_input = doc.getelementbyid("password")
  11. var_input.Value = Text2.Text
  12. Set var_but = doc.getelementbyid("submit")
  13. var_but.Click
  14. End Sub
  15.  
  16. Private Sub Command2_Click()
  17. Form2.Show
  18. End Sub
  19.  
  20. Private Sub Form_Load()
  21. Text1.Text = ""
  22. Text2.Text = ""
  23. WebBrowser1.Navigate "http://uni3.zagamex.com.ar"
  24. End Sub
  25.  

Al clickar sobre hangar deberia de verse el formulario2 (Form2)
Codigo Form2:

Código
  1. Dim hangar As Object
  2. Dim var_input As Object
  3. Dim var_value As Object
  4. Dim var_click As Object
  5. Dim bucle
  6.  
  7. Private Sub Command1_Click()
  8. Dim html
  9. If Option1.Enabled Then naves = "fmenge[202]"
  10. If Option2.Enabled Then naves = "fmenge[203]"
  11. If Option3.Enabled Then naves = "fmenge[204]"
  12. If Option4.Enabled Then naves = "fmenge[205]"
  13. If Option5.Enabled Then naves = "fmenge[206]"
  14. If Option6.Enabled Then naves = "fmenge[207]"
  15. If Option7.Enabled Then naves = "fmenge[208]"
  16. If Option8.Enabled Then naves = "fmenge[209]"
  17. If Option9.Enabled Then naves = "fmenge[210]"
  18. If Option10.Enabled Then naves = "fmenge[211]"
  19. If Option11.Enabled Then naves = "fmenge[212]"
  20. If Option12.Enabled Then naves = "fmenge[213]"
  21. If Option13.Enabled Then naves = "fmenge[214]"
  22. If Option14.Enabled Then naves = "fmenge[215]"
  23. If Option15.Enabled Then naves = "fmenge[216]"
  24.  
  25. For bucle = 1 To Val(Text1.Text)
  26. Form1.WebBrowser1.Navigate "http://uni3.zagamex.com.ar/game.php?page=buildings&mode=fleet"
  27. Set hangar = WebBrowser1.Document
  28. Set var_input = hangar.getelementbyid("val(naves)")
  29. Set var_input.Value = Text2.Text
  30. For Each html In hangar.getelementbytagname("input")
  31. If html.Value = "Construir" Then html.Click
  32. Next
  33. Next
  34. End Sub
  35.  
  36. Private Sub Form_Load()
  37. Text1.Text = ""
  38. Text2.Text = ""
  39.  
  40. Dim naves As String
  41. End Sub
  42.  
  43.  



Título: Re: Problema al cargar formulario[Solucionado]
Publicado por: mastercss en 16 Junio 2010, 16:30 pm
Despues de un dolor de cabeza probe añadiendo un formulario vacio y asociandolo a otro boton. El caso es que esta vez si funcionaba. Aunque parezca estraño decirlo creo que es un error de mi VBA ya que en otras ocasiones me han pasaod cosas similares.
Copie el código y los objetos del formulario y los pegue en otro nuevo y por arte de magia funciono.


Gracias y Salu2


Título: Re: Problema al cargar formulario
Publicado por: Psyke1 en 16 Junio 2010, 17:00 pm
me permites unos consejos?¿
Citar
Dim bucle
Porque no defines la variable bucle? (Pon As Integer), porque tal y como lo tienes estaria definido como As Variant, y ocupa mas espacio en la memoria...

Y esto otro:
Citar
If Option1.Enabled Then naves = "fmenge[202]"
If Option2.Enabled Then naves = "fmenge[203]"
If Option3.Enabled Then naves = "fmenge[204]"
If Option4.Enabled Then naves = "fmenge[205]"
If Option5.Enabled Then naves = "fmenge[206]"
If Option6.Enabled Then naves = "fmenge[207]"
If Option7.Enabled Then naves = "fmenge[208]"
If Option8.Enabled Then naves = "fmenge[209]"
If Option9.Enabled Then naves = "fmenge[210]"
If Option10.Enabled Then naves = "fmenge[211]"
If Option11.Enabled Then naves = "fmenge[212]"
If Option12.Enabled Then naves = "fmenge[213]"
If Option13.Enabled Then naves = "fmenge[214]"
If Option14.Enabled Then naves = "fmenge[215]"
If Option15.Enabled Then naves = "fmenge[216]"
Si haces una matriz de controles con las optiones ahorrarias codigo...

Salu2! :)


Título: Re: Problema al cargar formulario
Publicado por: mastercss en 16 Junio 2010, 21:46 pm
Gracias por el consejo la verdad es que como ahora estoy aprendiendo no tengo muy en cuenta la memoria.

Salu2